របៀបបង្កើតទំព័រចុះឈ្មោះផ្ទាល់ខ្លួនរបស់អ្នកនៅក្នុង WordPress Multisite ។ យើងផ្លាស់ទីទិន្នន័យឋិតិវន្តទៅម៉ាស៊ីនមេដាច់ដោយឡែក ហើយភ្ជាប់ CDN

អនុញ្ញាតឱ្យអ្នកប្រើការដំឡើង WordPress មួយសម្រាប់គេហទំព័រច្រើនក្នុងពេលតែមួយ។ ក្នុងករណីនេះ គេហទំព័រនីមួយៗទទួលបានតារាងផ្ទាល់ខ្លួននៅក្នុងមូលដ្ឋានទិន្នន័យដែលមានបុព្វបទតែមួយគត់។

តារាងដែលមានទិន្នន័យរបស់អ្នកប្រើប្រាស់ដែលបានចុះឈ្មោះគឺជារឿងធម្មតាសម្រាប់គេហទំព័រទាំងអស់នៅលើបណ្តាញ។ នេះគឺជាការបូកជាក់លាក់មួយ ហើយដោយការចុះឈ្មោះនៅពេលដែលអ្នកអាចចូលទៅកាន់គេហទំព័រជាច្រើន។ លើសពីនេះទៅទៀត នៅលើគេហទំព័រនីមួយៗ គណនីដូចគ្នាអាចមានសិទ្ធិខុសៗគ្នា។ ឧទាហរណ៍ នៅលើគេហទំព័រមួយ អ្នកប្រើប្រាស់អាចជាអ្នកកែសម្រួល ហើយនៅលើគេហទំព័រមួយទៀតជាអ្នកគ្រប់គ្រង។

នៅក្នុងការដំឡើង WordPress ធម្មតា ឯកសារ wp-login.php បង្ហាញទំព័រចុះឈ្មោះ ចូល និងកំណត់ពាក្យសម្ងាត់ឡើងវិញ។

  • wp-login.php - ការអនុញ្ញាត
  • wp-login.php?action=register - ការចុះឈ្មោះ
  • wp-login.php?action=lostpassword - កំណត់ពាក្យសម្ងាត់ឡើងវិញ

នៅក្នុងរបៀប Multisite ស្នូល WordPress ចាប់ផ្តើមមានឥរិយាបទខុសគ្នាបន្តិច ហើយនៅពេលដែលអ្នកធ្វើតាមតំណ wp-login.php?action=register ការប្តូរទិសទៅ wp-signup.php នឹងកើតឡើង។ នេះគឺជាទំព័រចុះឈ្មោះបណ្តាញរបស់អ្នកដែលភ្ជាប់មកជាមួយ WordPress តាមលំនាំដើម។

បន្ថែមពីលើការចុះឈ្មោះគណនីអ្នកប្រើប្រាស់ធម្មតា អ្នកក៏អាចបង្កើតគេហទំព័រថ្មីនៅលើវាផងដែរ ប្រសិនបើអ្នកគ្រប់គ្រងជាន់ខ្ពស់បានបើកមុខងារនេះនៅក្នុងការកំណត់បណ្តាញ (អ្នកគ្រប់គ្រងបណ្តាញ → ការកំណត់ → ការកំណត់បណ្តាញ)។

នៅក្នុងស្បែកភាគច្រើន ទំព័រចុះឈ្មោះមើលទៅមិនសូវល្អទេ។ ស្បែកជាច្រើនប្រើក្របខ័ណ្ឌ CSS ដូចជា Bootstrap និងថ្នាក់ផ្ទាល់ខ្លួនរបស់ពួកគេដើម្បីធ្វើរចនាប័ទ្មធាតុផ្សេងគ្នានៅលើទំព័រ ដូច្នេះវាពិបាកក្នុងការសរសេរ HTML ដែលសាកសមនឹងមនុស្សគ្រប់គ្នា។

ប៉ុន្តែកុំអស់សង្ឃឹមប្រសិនបើទំព័រមើលទៅមិនស្អាត។ ឯកសារ wp-signup.php គឺជារឿងដ៏អស្ចារ្យមួយនៅពេលដំបូង នៅពេលដែលអ្នកមិនមានពេលវេលាដើម្បីធ្វើការតាមរយៈរាល់ព័ត៌មានលម្អិតនៃគេហទំព័រ - អ្នកអាចផ្តោតលើទំព័រ និងខ្លឹមសារសំខាន់ៗផ្សេងទៀត។

នៅពេលអ្នករួចរាល់ក្នុងការបង្កើតទំព័រចុះឈ្មោះផ្ទាល់ខ្លួនរបស់អ្នក wp-signup.php គឺជាគំរូដ៏ល្អ និងជាឧទាហរណ៍ដើម្បីងាយស្រួលយល់អំពីជួរនៃមុខងារដែល WordPress ផ្តល់សម្រាប់ដំណើរការ និងធ្វើឱ្យការបញ្ចូលរបស់អ្នកប្រើប្រាស់មានសុពលភាព និងបង្កើតគណនីថ្មី។

គេហទំព័រសំខាន់នៃបណ្តាញ

តាមលំនាំដើម WordPress បើកទំព័រចុះឈ្មោះ (wp-signup.php) នៅលើដែនមេ (គេហទំព័រ) នៃបណ្តាញ។ ទោះយ៉ាងណាក៏ដោយ អ្នកអាចបង្កើតទំព័រចុះឈ្មោះសម្រាប់គេហទំព័រនីមួយៗក្នុងបណ្តាញរបស់អ្នក ទោះបីជាពួកគេមានស្បែកក៏ដោយ។

យើងនឹងពិចារណាករណីនៅពេលដែលគេហទំព័រទាំងអស់នៅក្នុងបណ្តាញប្រើប្រាស់ប្រធានបទដូចគ្នា ប៉ុន្តែពួកវានីមួយៗមានទំព័រចុះឈ្មោះ។ គេហទំព័រមានភាពខុសគ្នាជាភាសា (អង់គ្លេស និងរុស្ស៊ី) ដូច្នេះទំព័រចុះឈ្មោះនឹងត្រូវបានបង្ហាញជាភាសា "ដើម" នៃគេហទំព័រ។ ប្រសិនបើគេហទំព័រប្រើប្រាស់រូបរាងផ្សេងគ្នា អ្វីគ្រប់យ៉ាងនឹងអាស្រ័យលើអ្វីដែលពិតជារចនាប័ទ្មទាំងនេះ ថាតើប្លង់ដូចគ្នានឹងសមនឹងពួកគេ (ស្ថានភាពដ៏ល្អដែលអាចជំរុញឱ្យអ្នកបង្រួបបង្រួមស្បែកទាំងអស់របស់អ្នក) ឬថាតើវាមានតម្លៃធ្វើការលើទំព័រនីមួយៗ។

ជម្មើសជំនួសទៅ functions.php

ការបញ្ជាទិញឯកសារ

កម្មវិធីជំនួយ MU អាចផ្ទុកឯកសារមួយចំនួន និងរចនាសម្ព័ន្ធដែលមើលទៅសមហេតុផលសម្រាប់អ្នក។ ខ្ញុំ​នៅ​ជាប់​នឹង​អ្វី​មួយ​ដូច​ជា​ឋានានុក្រម​នេះ៖

| mu-plugins | | load.php | | selena-បណ្តាញ | | | ចុះឈ្មោះ | | | | plugin.php | | | ... | | | jetpack | | | | plugin.php

ឯកសារ load.php រួមបញ្ចូលការបកប្រែ និង "កម្មវិធីជំនួយ" ចាំបាច់ទាំងអស់៖

// កំពុងផ្ទុកការបកប្រែសម្រាប់កម្មវិធីជំនួយ MU load_muplugin_textdomain("selena_network", "/selena-network/languages/"); // មុខងារសម្រាប់ទំព័រចុះឈ្មោះទាមទារ WPMU_PLUGIN_DIR ។ "/selena-network/signup/plugin.php"; // កម្មវិធីជំនួយផ្សេងទៀត // ទាមទារ WPMU_PLUGIN_DIR ...

ថតកម្មវិធីជំនួយត្រូវបានរក្សាទុកនៅខាងក្នុង selena-network directory។ នីមួយៗមាន plugin.php ផ្ទាល់ខ្លួន ដែលយើងបញ្ចូលក្នុង load.php ។ នេះផ្តល់ឱ្យអ្នកនូវភាពបត់បែន និងសមត្ថភាពក្នុងការបិទភ្លាមៗ និងលើធាតុផ្សំនីមួយៗនៅលើគម្រោងការងារក្នុងករណីមានអាសន្ន។

ទំព័រចុះឈ្មោះ

ដោយបានស្វែងយល់ពីកន្លែង និងរបៀបដែលយើងនឹងសរសេរកូដនោះ យើងអាចបន្តទៅការបង្កើតទំព័រចុះឈ្មោះ។

ចូរយើងបង្កើតទំព័រមួយដែលមានអាសយដ្ឋាន example.org/signup/ តាមរយៈចំណុចប្រទាក់ធម្មតា។ អ្នកអាចប្រើ URL ណាមួយដែលហាក់ដូចជាសមរម្យសម្រាប់គម្រោងរបស់អ្នក។

បញ្ជូនបន្តទៅទំព័រចុះឈ្មោះដែលចង់បាន

ដើម្បីឱ្យ WordPress ស្វែងយល់អំពីទំព័រចុះឈ្មោះថ្មីរបស់យើង ហើយបញ្ជូនបន្តទៅកាន់វា នៅពេលអ្នកចុចលើតំណ "ចុះឈ្មោះ" តម្រង wp_signup_location ត្រូវបានប្រើ។ វាអាចត្រូវបានរកឃើញនៅខាងក្នុង wp-login.php ហើយទទួលខុសត្រូវចំពោះការបញ្ជូនបន្តទៅ wp-signup.php តាមលំនាំដើម។

ករណី "ចុះឈ្មោះ"៖ ប្រសិនបើ (is_multisite()) ( wp_redirect(apply_filters("wp_signup_location", network_site_url("wp-signup.php"))); ចេញ; // ...

ដូចដែលអ្នកចងចាំតាមលំនាំដើម ទំព័រចុះឈ្មោះបើកនៅលើដែនសំខាន់នៃបណ្តាញ។ នេះជាមូលហេតុដែល network_site_url() ត្រូវបានប្រើនៅទីនេះ។

ចូរបន្ថែមកម្មវិធីដោះស្រាយរបស់យើងទៅតម្រងនៅក្នុង mu-plugins/selena-network/signup/plugin.php ដែលនឹងត្រឡប់អាសយដ្ឋាននៃទំព័រចុះឈ្មោះនៅលើគេហទំព័របច្ចុប្បន្ន៖

មុខងារ selena_network_signup_page($url) (ត្រឡប់ home_url("ចុះឈ្មោះ"); ) add_filter("wp_signup_location", "selena_network_signup_page", 99);

selena_network គឺជាបុព្វបទដែលខ្ញុំប្រើក្នុងនាមមុខងារទាំងអស់នៅក្នុងកម្មវិធីជំនួយ MU នៅលើគេហទំព័ររបស់ខ្ញុំ ដើម្បីជៀសវាងការប៉ះទង្គិច វាគួរតែត្រូវបានជំនួសដោយបុព្វបទតែមួយគត់របស់អ្នក។ អាទិភាពនៃការបន្ថែមតម្រងគឺ 99 ពីព្រោះកម្មវិធីជំនួយមួយចំនួន ឧទាហរណ៍ bbPress និង BuddyPress អាចសរសេរជាន់លើអាសយដ្ឋាននេះដោយខ្លួនឯង (កម្មវិធីជំនួយ MU ផ្ទុកលឿនជាងកម្មវិធីជំនួយធម្មតា សូមមើលខាងលើ)។

សូមចំណាំថា home_url() ត្រូវបានប្រើ ដែលខុសពី network_site_url() ត្រឡប់អាសយដ្ឋាននៃគេហទំព័របច្ចុប្បន្ន ហើយមិនមែនជាគេហទំព័រសំខាន់នៃបណ្តាញនោះទេ។

មុខងារ wp-signup.php

ឯកសារ wp-signup.php មានមុខងារ និងកូដមួយចំនួនធំ។ ដើម្បីមើលរូបភាពធំ អ្នកអាចប្រើការបត់កូដ។ តាមក្បួនមួយនៅក្នុងភាសាអង់គ្លេសនេះត្រូវបានគេហៅថា "ការបត់កូដ" ។

នៅដើមដំបូងនៃឯកសារ ចាប់ពីបន្ទាត់ទី 1 ដល់ 80 (នៅក្នុងកំណែ 4.1.1) ការត្រួតពិនិត្យផ្សេងៗត្រូវបានធ្វើឡើង ហើយ "ការចាប់ផ្តើម" នៃទំព័រគឺលទ្ធផលដោយប្រើ get_header() ។

បន្ទាប់មក វិធីសាស្រ្តជាច្រើនត្រូវបានប្រកាស ហើយមុនពេលយើងចាប់ផ្តើមធ្វើការជាមួយពួកគេ វាមានតម្លៃយល់ពីអ្វីដែលមុខងារនីមួយៗធ្វើ។ ពួកគេជាច្រើនតែងតែប្រើមុខងារផ្សេងទៀតជាមួយបុព្វបទ wpmu_ ដែលទាំងអស់នេះត្រូវបានប្រកាសនៅក្នុងឯកសារ wp-includes/ms-functions.php ។ ផ្នែកនេះពិបាកយល់ដោយមិនបានមើលកូដដោយខ្លួនឯងទេ។ ខាងក្រោមនេះគឺជាការពិពណ៌នាខ្លីនៃមុខងារសំខាន់ៗក្នុងករណីដែលអ្នកមានការលំបាកណាមួយ។

  • wpmu_signup_stylesheet() - បញ្ចេញ CSS បន្ថែមនៅលើទំព័រចុះឈ្មោះ។
  • show_blog_form() - វាលសម្រាប់ការចុះឈ្មោះគេហទំព័រ (អាសយដ្ឋាន ឈ្មោះ ភាពមើលឃើញសម្រាប់ម៉ាស៊ីនស្វែងរក)។
  • validate_blog_form() - ធ្វើឱ្យមានសុពលភាពអាសយដ្ឋានគេហទំព័រដែលបានបញ្ចូល និងចំណងជើងដោយប្រើ wpmu_validate_blog_signup() ។
  • show_user_form() - វាលសម្រាប់ការចុះឈ្មោះអ្នកប្រើប្រាស់ (ចូល និងអាសយដ្ឋានអ៊ីមែល)។
  • validate_user_form() — កំពុងពិនិត្យមើលការចូល និងអាសយដ្ឋានអ៊ីមែលដែលបានបញ្ចូល។ អ៊ីមែលដោយប្រើ wpmu_validate_user_signup() ។
  • signup_another_blog() - វាលសម្រាប់ការចុះឈ្មោះគេហទំព័រថ្មីដោយប្រើ show_blog_form() សម្រាប់អ្នកប្រើប្រាស់ដែលបានចុះឈ្មោះនៅលើគេហទំព័ររួចហើយ។
  • validate_another_blog_signup() - ពិនិត្យអាសយដ្ឋានគេហទំព័រ និងចំណងជើងដោយប្រើ validate_blog_form() ។
  • signup_user() គឺជាមុខងារចម្បងសម្រាប់បង្ហាញវាលនៃទំព័រចុះឈ្មោះ។
  • validate_user_signup() - ពិនិត្យការចូល និងអាសយដ្ឋានអ៊ីមែល។ អ៊ីមែលដោយប្រើ validate_user_form() ។
  • signup_blog() - វាលសម្រាប់បញ្ចូលអាសយដ្ឋាន ឈ្មោះ និងភាពមើលឃើញនៃគេហទំព័រ (ជំហានចុះឈ្មោះទីពីរ) ដោយប្រើ show_blog_form() ។
  • validate_blog_signup() - ពិនិត្យការចូល អាសយដ្ឋានអ៊ីមែល។ អ៊ីមែល អាសយដ្ឋាន និងឈ្មោះគេហទំព័រ។

នៅផ្នែកខាងក្រោមបំផុតនៃឯកសារ wp-signup.php (ពីបន្ទាត់ 646 ក្នុងកំណែ 4.1.1) គឺជាតក្កវិជ្ជាចម្បងនៃទំព័រចុះឈ្មោះ ដែលប្រើវិធីទាំងអស់ដែលបានពិពណ៌នាខាងលើ។ ផ្នែកនៃកូដនេះមិនត្រូវបានបញ្ចូលក្នុងមុខងារទេ។ នៅចុងបញ្ចប់ get_footer() ត្រូវបានហៅ។

ចម្លងមុខងាររបស់ wp-signup.php

ខាងក្រោមនេះនឹងពណ៌នាអំពីនីតិវិធីសម្រាប់ការចម្លង wp-signup.php ទៅក្នុងកម្មវិធីជំនួយ MU និងធ្វើការផ្លាស់ប្តូរទៅ “fork” ។ នេះប្រហែលជាមិនមែនជាវិធីល្អបំផុតដើម្បីទៅនោះទេ។ ជំនួសមកវិញ អ្នកអាចសរសេរមុខងារផ្ទាល់ខ្លួនរបស់អ្នកពីដំបូងរហូតដល់មានសុពលភាព និងបង្ហាញទម្រង់ដោយប្រើថ្នាក់ជាជាងមុខងារធម្មតា។ តាមគំនិតរបស់ខ្ញុំ wp-signup.php មានតក្កវិជ្ជាចាំបាច់ទាំងអស់សម្រាប់ទំព័ររបស់យើងរួចហើយ អ្វីដែលនៅសេសសល់គឺដើម្បីធ្វើការផ្លាស់ប្តូរបន្តិចបន្តួច។

នៅពេលដែល WordPress ត្រូវបានធ្វើបច្ចុប្បន្នភាព wp-signup.php ក៏ផ្លាស់ប្តូរពីពេលមួយទៅពេលមួយ ប៉ុន្តែនេះមិនមានន័យថាអ្នកនឹងត្រូវធ្វើសមកាលកម្ម “fork” របស់អ្នកជាមួយនឹងការចេញផ្សាយនីមួយៗនោះទេ។ មុខងារនៅខាងក្នុង wp-signup.php សំខាន់ដោះស្រាយតែជាមួយលទ្ធផល HTML ការផ្ទៀងផ្ទាត់ទិន្នន័យ ការបង្កើតគណនី និងគេហទំព័រ និងវិធីសាស្រ្តដែលមានបុព្វបទ wpmu_ ដែលបានប្រកាសនៅក្នុង ms-functions.php ត្រូវបានចូលរួម។

ចូរយើងបង្កើតមុខងារមួយដែលនឹងបង្ហាញទម្រង់ចុះឈ្មោះនៅលើទំព័រ។ ដើម្បីធ្វើដូច្នេះ ចម្លង wp-signup.php ពី WordPress root ទៅ mu-plugings/selena-network/signup/ ។ ចូរភ្ជាប់វានៅខាងក្នុង mu-plugins/selena-network/signup/plugin.php)។

ទាមទារ WPMU_PLUGIN_DIR ។ "/selena-network/signup/wp-signup.php";

ចូរលុបការត្រួតពិនិត្យដែលទាមទារ និងមិនចាំបាច់ទាំងអស់ចេញពីដើមដំបូងនៃឯកសារដែលបានចម្លង។ នៅក្នុងកំណែ 4.1.1 នេះគឺជាលេខកូដទាំងអស់ពីបន្ទាត់ 1 ដល់ 80 ។

ឥឡូវនេះយើងត្រៀមខ្លួនជាស្រេចដើម្បីបង្កើតមុខងារចម្បងដើម្បីបង្ហាញទម្រង់ចុះឈ្មោះ។ ដើម្បីធ្វើដូចនេះយើងនឹងផ្ទេរតក្កវិជ្ជាទាំងអស់ពីបន្ទាត់ 646 ទៅចុងបញ្ចប់នៃឯកសារទៅជាមុខងារមួយហៅថា selena_network_signup_main ។ នៅចុងបញ្ចប់យើងនឹងដកការបិទបន្ថែមពីរ

(បន្ទាត់ 722 និង 723) ក៏ដូចជាការហៅ get_footer() ។

នៅក្នុង selena_network_signup_main() ដែលទើបបង្កើតថ្មី នៅដើមដំបូង យើងនឹងប្រកាសអថេរ active_signup សកល ដែលត្រូវបានប្រើដោយវិធីសាស្រ្តផ្សេងទៀតទាំងអស់ពីឯកសារនេះ។ ហើយសូមបន្ថែមការហៅទៅកាន់ព្រឹត្តិការណ៍ before_signup_form ដែលយើងដកចេញពីដើមដំបូងនៃឯកសារ។

មុខងារ selena_network_signup_main() (សកល $active_signup; do_action("before_signup_form"); // ... )

ឥឡូវនេះនៅសល់ទាំងអស់គឺត្រូវផ្លាស់ប្តូរប្លង់នៅគ្រប់កន្លែងដែលចាំបាច់ ហើយទំព័រចុះឈ្មោះរួចរាល់។

លទ្ធផលនៃទម្រង់ចុះឈ្មោះ

យ៉ាងហោចណាស់មានជម្រើសពីរនៅទីនេះ។ មធ្យោបាយងាយស្រួលជាងគឺបង្កើត shortcode ហើយដាក់វានៅលើទំព័រតាមរយៈកម្មវិធីនិពន្ធធម្មតា។

// បង្កើត shortcode network_signup add_shortcode("network_signup", "selena_network_signup_main");

ជម្រើសទីពីរគឺបង្កើតទម្រង់ទំព័រ page-signup.php នៅក្នុងថតប្រធានបទកូនរបស់អ្នក។ ជំនួសឱ្យពាក្យ "ចុះឈ្មោះ" អ្នកអាចប្រើលេខសម្គាល់តែមួយគត់ដែលបានកំណត់ទៅទំព័រ។ នៅខាងក្នុងគំរូ បន្ថែមប្លង់ចាំបាច់ ហើយហៅទូរសព្ទទៅ selena_network_signup_main() នៅកន្លែងដែលត្រឹមត្រូវ។

ជាលទ្ធផល ទំព័រចុះឈ្មោះរបស់ខ្ញុំមើលទៅប្រសើរជាងមុន និងស្អាតជាង។

ទំព័រធ្វើឱ្យសកម្ម

តាមលំនាំដើម ប្លក, រូបភាពបែងចែកដំណើរការចុះឈ្មោះទៅជា Multisite ជាពីរជំហាន - បំពេញទម្រង់នៅលើគេហទំព័រ និងធ្វើឱ្យគណនីរបស់អ្នកសកម្មដោយចុចលើតំណភ្ជាប់ដែលបានផ្ញើក្នុងអ៊ីមែល។ បន្ទាប់ពីអ្នកបំពេញទម្រង់ដែលបានបង្កើតនៅក្នុងផ្នែកមុន WordPress ផ្ញើអ៊ីមែលដែលមានការណែនាំខ្លីៗ និងតំណដើម្បីដំណើរការគណនីរបស់អ្នក។

ឯកសារ wp-activate.php ដែលមានទីតាំងនៅក្នុងថត root របស់ WordPress ទទួលខុសត្រូវក្នុងការបង្ហាញទំព័រធ្វើឱ្យសកម្ម។ wp-activate.php ក៏អាចត្រូវបានផ្លាស់ប្តូរទាំងស្រុងផងដែរ។ ដំណើរការគឺស្រដៀងគ្នាទៅនឹងអ្វីដែលយើងបានធ្វើរួចហើយសម្រាប់ wp-signup.php ។

ចូរយើងបង្កើតទំព័រ example.org/activate/ តាមរយៈចំណុចប្រទាក់ធម្មតា។ សម្រាប់អាសយដ្ឋាន សូមប្រើ URL ណាមួយដែលមើលទៅសមរម្យសម្រាប់អ្នក។

ចូរចម្លងឯកសារ wp-activate.php ទៅកម្មវិធីជំនួយ MU របស់យើង ហើយភ្ជាប់វាទៅ mu-plugins/selena-network/signup/plugin.php ។

ទាមទារ WPMU_PLUGIN_DIR ។ "/selena-network/signup/wp-activate.php";

មិនមានមាតិកាច្រើននៅខាងក្នុងទេ មិនដូច wp-signup.php ទេ។ ឯកសារអនុវត្តប្រតិបត្តិការតែមួយ - វាធ្វើឱ្យគណនីសកម្មប្រសិនបើសោត្រឹមត្រូវត្រូវបានទទួល និងបង្ហាញសារអំពីកំហុស ឬការបញ្ចប់ប្រតិបត្តិការដោយជោគជ័យ។

ចូរលុបការត្រួតពិនិត្យដែលមិនចាំបាច់ទាំងអស់ ហើយទាមទារ - ពីបន្ទាត់ទី 1 ដល់ 69 នៅក្នុង WordPress 4.1.1 ។ នៅចុងបញ្ចប់ យើងនឹងលុបការហៅ get_footer() ចេញ។ យើងនឹងផ្ទេរមាតិកាដែលនៅសល់ទៅមុខងារ selena_network_activate_main() ។

វាគួរឱ្យចាប់អារម្មណ៍ក្នុងការកត់សម្គាល់ថានៅទីនេះ មុនពេលផ្ទុក WordPress (wp-load.php) WP_INSTALLING ថេរត្រូវបានប្រកាស។ វត្តមានរបស់វាបណ្តាលឱ្យ WordPress មិនផ្ទុកកម្មវិធីជំនួយ។

ដូចនៅក្នុងករណីនៃទំព័រចុះឈ្មោះ អ្វីទាំងអស់ដែលនៅសេសសល់គឺត្រូវកែតម្រូវប្លង់នៅកន្លែងចាំបាច់។ អ្នកក៏អាចផ្លាស់ប្តូរអត្ថបទនៃសារដែលបានបង្ហាញ (ក្នុងករណីនេះ កុំភ្លេចបន្ថែមដែនអត្ថបទនៃកម្មវិធីជំនួយ MU របស់អ្នកទៅមុខងារអ្នកបកប្រែទាំងអស់ តាមលំនាំដើម វាមិនត្រូវបានដំឡើងនៅកន្លែងណាទេ)។

មុខងារដែលត្រៀមរួចជាស្រេចអាចប្រើនៅលើទំព័រដែលបានបង្កើតជាមុនតាមរយៈ shortcode ឬគំរូដាច់ដោយឡែកនៅក្នុងប្រធានបទកុមារ។

អក្សរធ្វើឱ្យសកម្មជាមួយនឹងតំណភ្ជាប់ត្រឹមត្រូវ។

ទំព័រធ្វើឱ្យសកម្មរួចរាល់ហើយ ប៉ុន្តែ WordPress មិនដឹងអំពីវា ហើយនឹងនៅតែផ្ញើអ៊ីមែលធ្វើឱ្យសកម្មជាមួយនឹងតំណភ្ជាប់ទៅ wp-activate.php ។ មិនដូច wp-signup.php ទេ មិនមានតម្រងដែលនឹងអនុញ្ញាតឱ្យអ្នកផ្លាស់ប្តូរអាសយដ្ឋាននោះទេ។ ជំនួសមកវិញ អ្នកត្រូវសរសេរមុខងារផ្ទាល់ខ្លួនរបស់អ្នក ដែលនឹងផ្ញើអក្សរជាមួយនឹងតំណភ្ជាប់ត្រឹមត្រូវ។

នៅពេលអ្នកបំពេញ និងបញ្ជូនទម្រង់បែបបទនៅលើទំព័រចុះឈ្មោះ WordPress ហៅ wpmu_signup_ អ្នកប្រើប្រាស់() ឬ wpmu_signup_ ប្លុក() អាស្រ័យលើប្រភេទនៃការចុះឈ្មោះ។ មុខងារទាំងពីរបង្កើតធាតុថ្មីនៅក្នុងតារាង wp_signups ដោយបំពេញវាជាមួយនឹងមាតិកាចាំបាច់ ដែលរួមបញ្ចូលសោរសកម្មគណនី។

បន្ទាប់ពីនោះអាស្រ័យលើមុខងារ wpmu_signup_ ត្រូវបានហៅ អ្នកប្រើប្រាស់ _notification() ឬ wpmu_signup_ ប្លុក _ការជូនដំណឹង()។ មុខងារទាំងពីរមានមុខងារស្រដៀងគ្នា - ពួកគេបង្កើត និងផ្ញើអ៊ីមែលដែលមានតំណធ្វើឱ្យសកម្ម ប៉ុន្តែយកអាគុយម៉ង់ផ្សេងគ្នា។ ទាំងពីរមានតម្រងដើម្បី "ស្ទាក់" ព្រឹត្តិការណ៍។

ប្រសិនបើ (! apply_filters("wpmu_signup_user_notification", $user, $user_email, $key, $meta)) ត្រឡប់មិនពិត;

ដើម្បីដំណើរការគណនីជាមួយការបង្កើតប្លក់៖

ប្រសិនបើ (! apply_filters("wpmu_signup_blog_notification", $domain, $path, $title, $user, $user_email, $key, $meta)) (ត្រឡប់មិនពិត; )

អ្វីដែលនៅសេសសល់គឺត្រូវសរសេរកម្មវិធីគ្រប់គ្រងផ្ទាល់ខ្លួនរបស់អ្នក ដែលនៅខាងក្នុងដែលផ្ញើសំបុត្រតាមរយៈ wp_mail() ហើយនៅចុងបញ្ចប់ត្រូវប្រាកដថាត្រឡប់មិនពិត ដូច្នេះ WordPress មិនផ្ញើលិខិតធ្វើឱ្យសកម្មពីរដង - មួយជារបស់អ្នក មួយទៀតជាលំនាំដើម សំបុត្រដែលមានតំណភ្ជាប់ទៅ wp-activate.php ។

មុខងារ selena_network_wpmu_signup_user_notification($user, $user_email, $key, $meta = array()) ( // បង្កើតបឋមកថា អត្ថបទ និងបឋមកថានៃសំបុត្រ // ... // ផ្ញើសំបុត្រ ឬបន្ថែមកិច្ចការ Cron ដើម្បីផ្ញើ អក្សរ wp_mail($user_email , wp_specialchars_decode($subject), $message, $message_headers) // ផ្តល់ឱ្យមិនពិត ដូច្នេះ WordPress មិនផ្ញើអ៊ីមែលធ្វើឱ្យសកម្មពីរដងត្រឡប់ false; ;

ប្រសិនបើអ្នកផ្ញើអ៊ីមែលតាមរយៈម៉ាស៊ីនមេ SMTP ឬចំនួននៃការចុះឈ្មោះមានចំនួនច្រើន អ្នកគួរតែពិចារណាមិនផ្ញើអ៊ីមែលភ្លាមៗ។ ជំនួសមកវិញ អ្នកអាចបន្ថែមការងារ Cron ដោយប្រើ WordPress Cron ។

យើងបិទការចូលប្រើ wp-signup.php និង wp-activate.php

បន្ទាប់ពីបង្កើតទំព័រចុះឈ្មោះ និងធ្វើឱ្យសកម្មផ្ទាល់ខ្លួនរបស់អ្នក អ្នកប្រហែលជាចង់បិទ "ដើម"។ ឧទាហរណ៍ប្រសិនបើមានវាលបន្ថែមនៅលើទំព័រចុះឈ្មោះដែលត្រូវតែបំពេញ។ ដូចគ្នានេះផងដែរ គេហទំព័រ WordPress ជាច្រើនត្រូវទទួលរងការចុះឈ្មោះសារឥតបានការ។

អ្នកអាចដោះស្រាយបញ្ហាពីរក្នុងសកម្មភាពមួយដោយសួរ Apache ឱ្យត្រឡប់ 404 ប្រសិនបើអ្នកព្យាយាមបើកទំព័រទាំងនេះ។ ដើម្បីធ្វើដូច្នេះ អ្នកគ្រាន់តែត្រូវបន្ថែម RewriteRules បន្ថែមពីរបីទៅឯកសារកំណត់រចនាសម្ព័ន្ធរបស់អ្នក ឬ .htaccess ។

RewriteEngine On RewriteBase / # ចំនេះដឹងនៃការបញ្ចេញមតិធម្មតានឹងមិនដែលនាំអោយ :) RewriteRule ^wp-signup\.php - RewriteRule ^wp-activate\.php - # BEGIN WordPress # យើងមិនប៉ះក្បួន WordPress តាមលំនាំដើម :) # .. # បញ្ចប់ WordPress

សេចក្តីសន្និដ្ឋាន

សម្រាប់បញ្ហានេះ និងបញ្ហា WordPress ជាច្រើនទៀត មានដំណោះស្រាយជាច្រើននៅលើអ៊ីនធឺណិត។ ឧទាហរណ៍ ដើម្បីបង្កើតទំព័រចុះឈ្មោះ និងធ្វើឱ្យសកម្ម អ្នកខ្លះស្នើឱ្យសរសេរឡើងវិញនូវ wp-signup.php និង wp-activate.php ដើម។ នេះមិនគួរធ្វើទេ ព្រោះប្រសិនបើអ្នកធ្វើបច្ចុប្បន្នភាព WordPress អ្នកនឹងបាត់បង់ការផ្លាស់ប្តូរទាំងអស់ដែលបានធ្វើឡើងចំពោះឯកសារ ហើយអ្នកក៏នឹងមិនអាចពិនិត្យមើលភាពត្រឹមត្រូវនៃស្នូលដោយប្រើ .

នៅពេលបង្កើតកម្មវិធីបន្ថែម ប្រធានបទ ឬដំណោះស្រាយ អ្នកគួរតែចំណាយពេលបន្តិចដើម្បីយល់ពីអ្វីដែលកំពុងកើតឡើងនៅក្នុង WordPress។ មានឧបករណ៍បំបាត់កំហុសមានប្រយោជន៍ជាច្រើនសម្រាប់ការនេះ។

P.S.

ដើម្បីផ្តល់តួនាទីផ្សេងគ្នាដោយស្វ័យប្រវត្តិដល់អ្នកប្រើប្រាស់ថ្មី អ្នកអាចប្រើកម្មវិធីជំនួយការគ្រប់គ្រងអ្នកប្រើប្រាស់ច្រើនកន្លែង។

ប្រសិនបើអ្នកមានចម្ងល់ ឬការលំបាកនៅពេលបង្កើតទំព័រចុះឈ្មោះ និងធ្វើឱ្យសកម្មបន្ទាប់ពីអានអត្ថបទ សូមទុកមតិយោបល់មួយ ហើយយើងប្រាកដជាឆ្លើយ។

27.03.2015 27.03.2015

អ្នកអភិវឌ្ឍន៍ WordPress ។ ចូលចិត្តសណ្តាប់ធ្នាប់ក្នុងអ្វីៗគ្រប់យ៉ាង និងការយល់ដឹងអំពីឧបករណ៍ថ្មីៗ។ បំផុសគំនិតដោយស្ថាបត្យកម្មសមាសធាតុ Symfony ។

  • យើងបង្កើតទំព័រចុះឈ្មោះផ្ទាល់ខ្លួនរបស់យើងសម្រាប់ multisite ជំនួសឱ្យ wp-signup.php ស្តង់ដារ។

    នៅក្នុងការដំឡើង WordPress ធម្មតា ទំព័រចុះឈ្មោះ (ចូល កំណត់ពាក្យសម្ងាត់ឡើងវិញ) គឺចេញដោយឯកសារ wp-login.php ។

    • /wp-login.php - ការអនុញ្ញាត
    • /wp-login.php?action=register - ការចុះឈ្មោះ
    • /wp-login.php?action=lostpassword - កំណត់ពាក្យសម្ងាត់ឡើងវិញ

    មានលក្ខខណ្ឌដាច់ដោយឡែកសម្រាប់ multisite នៅក្នុង wp-login.php ។ ដូច្នេះ នៅពេលដែលអ្នកធ្វើតាមតំណ /wp-login.php?action=register នៅលើគេហទំព័រច្រើន ប្លក, រូបភាពនឹងប្តូរទិសទៅទំព័រ /wp-signup.php ។ ស្បែកជាច្រើនមិនធ្វើឱ្យទំព័រមើលទៅទាក់ទាញខ្លាំងនោះទេ ដូច្នេះយើងនឹងបង្កើតដោយខ្លួនឯង។

    គេហទំព័រសំខាន់នៃបណ្តាញ

    តាមលំនាំដើម WordPress បើកទំព័រចុះឈ្មោះ (wp-signup.php) នៅលើដែនមេ (គេហទំព័រ) នៃបណ្តាញ។ ទោះជាយ៉ាងណាក៏ដោយ អ្នកអាចបង្កើតទំព័រចុះឈ្មោះដាច់ដោយឡែកសម្រាប់គេហទំព័រនីមួយៗក្នុងបណ្តាញរបស់អ្នក ទោះបីជាពួកគេមានប្រធានបទផ្សេងគ្នាក៏ដោយ។ យើងនឹងពិចារណាករណីដែលគេហទំព័រទាំងអស់នៅក្នុងបណ្តាញមានទំព័រចុះឈ្មោះផ្ទាល់ខ្លួន ប៉ុន្តែប្រធានបទដូចគ្នាត្រូវបានប្រើ ហើយគេហទំព័រខុសគ្នាតែក្នុងភាសាប៉ុណ្ណោះ។ ប្រសិនបើអ្នកប្រើស្បែកផ្សេងគ្នា អ្នកនឹងត្រូវសរសេរកូដបន្ថែមទៀត។

    functions.php?

    ទេ ឈ្មោះឯកសារនេះហាក់ដូចជាត្រូវបានលើកឡើងនៅក្នុងគ្រប់អត្ថបទអំពី WordPress ។ ក្នុងករណីរបស់យើង ដោយសារមុខងារចុះឈ្មោះត្រូវបានរចនាឡើងសម្រាប់គេហទំព័រជាច្រើន វាសមហេតុផលក្នុងការបញ្ចូលវាទៅក្នុងកម្មវិធីជំនួយ MU ដែលត្រូវបានផ្ទុកនៅពេលដែលគេហទំព័រណាមួយត្រូវបានបើក។

    ការបំប្លែងអត្ថបទចម្រៀង

    វាគួរឱ្យកត់សម្គាល់ថាកម្មវិធីជំនួយ MU ត្រូវបានផ្ទុកមុនពេលកម្មវិធីជំនួយធម្មតា និងមុនពេលស្នូល WordPress ត្រូវបានផ្ទុកពេញលេញ ដូច្នេះការហៅមុខងារមួយចំនួនអាចនាំឱ្យមានកំហុសធ្ងន់ធ្ងរនៅក្នុង PHP ។ ការផ្ទុក "ដំបូង" បែបនេះក៏មានគុណសម្បត្តិរបស់វាផងដែរ។ ឧទាហរណ៍ នៅខាងក្នុងស្បែកណាមួយ អ្នកមិនអាចភ្ជាប់ជាមួយសកម្មភាពមួយចំនួនដែលត្រូវបានកេះ សូម្បីតែមុនពេលឯកសារ functions.php ត្រូវបានផ្ទុកពីស្បែកក៏ដោយ។ ឧទាហរណ៍នៃនេះគឺជាសកម្មភាពពីកម្មវិធីជំនួយ Jetpack នៃទម្រង់ jetpack_module_loaded_related-posts (ប្រកាសដែលពាក់ព័ន្ធគឺជាឈ្មោះរបស់ម៉ូឌុល) ដោយមានជំនួយដែលវាអាចធ្វើទៅបានដើម្បីតាមដានសកម្មភាពរបស់ម៉ូឌុលនៅក្នុង Jetpack ។ វាមិនអាចទៅរួចទេក្នុងការ "ភ្ជាប់" ទៅនឹងសកម្មភាពនេះពីឯកសារប្រធានបទ ពីព្រោះសកម្មភាពបានដំណើរការរួចហើយ មុនពេលដែលរចនាប័ទ្មត្រូវបានផ្ទុក - កម្មវិធីជំនួយត្រូវបានផ្ទុកមុនពេលរូបរាង។ អ្នក​អាច​មើល​រូបភាព​ទូទៅ​នៃ​លំដាប់​ផ្ទុក WordPress នៅ​លើ​ទំព័រ​យោង​សកម្មភាព​ក្នុង codex ។

    ការបញ្ជាទិញឯកសារ

    កម្មវិធីជំនួយ MU អាចផ្ទុកឯកសារមួយចំនួន និងរចនាសម្ព័ន្ធណាមួយដែលហាក់ដូចជាសមហេតុផលសម្រាប់អ្នក។ ខ្ញុំ​នៅ​ជាប់​នឹង​អ្វី​មួយ​ដូច​ជា​ឋានានុក្រម​នេះ៖

    |-mu-plugins |-|-load.php |-|-|-selena-network |-|-|-|-signup |-|-|-|-|-plugin.php |-|-|-| -|-... |-|-|-|-jetpack |-|-|-|-|-plugin.php

    ឯកសារ load.php មាន “កម្មវិធីជំនួយ” ចាំបាច់ទាំងអស់សម្រាប់បណ្តាញរបស់យើង៖

    // ផ្ទុកការបកប្រែសម្រាប់ addons ទាំងអស់ load_muplugin_textdomain ("selena_network", "/selena-network/languages/"); // ការចុះឈ្មោះបណ្តាញទាមទារ WPMU_PLUGIN_DIR ។ "/selena-network/signup/plugin.php"; // កម្មវិធីជំនួយផ្សេងទៀត // ទាមទារ WPMU_PLUGIN_DIR ...

    នៅខាងក្នុងថតឯកសារ selena-network ថតកម្មវិធីជំនួយត្រូវបានរក្សាទុក ដែលនីមួយៗមាន plugin.php ផ្ទាល់ខ្លួន ដែលយើងរួមបញ្ចូលក្នុង load.php ។ វាផ្តល់ឱ្យអ្នកនូវភាពបត់បែន និងសមត្ថភាពក្នុងការបិទ និងបើកអ្វីៗបានយ៉ាងឆាប់រហ័ស។

    អាសយដ្ឋានទំព័រចុះឈ្មោះ

    ដើម្បីបញ្ជាក់អាសយដ្ឋាននៃទំព័រចុះឈ្មោះ សូមប្រើតម្រង wp_signup_location ។ វាអាចត្រូវបានរកឃើញនៅខាងក្នុងឯកសារ wp-login.php ហើយទទួលខុសត្រូវចំពោះការប្តូរទិសទៅ wp-signup.php ។

    ករណី "ចុះឈ្មោះ"៖ ប្រសិនបើ (is_multisite()) ( wp_redirect(apply_filters("wp_signup_location", network_site_url("wp-signup.php"))); ចេញ;

    ចូរបន្ថែមមុខងាររបស់យើងទៅ mu-plugins/selena-network/signup/plugin.php ដែលនឹងត្រឡប់អាសយដ្ឋាននៃទំព័រចុះឈ្មោះនៅលើគេហទំព័របច្ចុប្បន្ន៖

    មុខងារ selena_network_signup_page ($url) ( return home_url () . "/signup/"; ) add_filter ( "wp_signup_location", "selena_network_signup_page", 99);

    selena_network គឺជាបុព្វបទដែលខ្ញុំប្រើក្នុងនាមមុខងារទាំងអស់នៅក្នុងកម្មវិធីជំនួយ MU នៅលើគេហទំព័ររបស់ខ្ញុំ ដើម្បីជៀសវាងការប៉ះទង្គិច វាគួរតែត្រូវបានជំនួសដោយបុព្វបទតែមួយគត់របស់អ្នក។ អាទិភាពនៃការបន្ថែមតម្រងគឺ 99 ពីព្រោះកម្មវិធីជំនួយមួយចំនួន ឧទាហរណ៍ bbPress និង BuddyPress អាចសរសេរជាន់លើអាសយដ្ឋាននេះដោយខ្លួនឯង (កម្មវិធីជំនួយ MU ផ្ទុកលឿនជាងកម្មវិធីជំនួយធម្មតា សូមមើលខាងលើ)។ ចំណាំថា home_url() ត្រូវបានប្រើជំនួសឱ្យ network_site_url() ដើម្បីរក្សាអ្នកទស្សនានៅលើដែនដូចគ្នា។ URL ណាមួយអាចត្រូវបានប្រើជាអាសយដ្ឋាន។

    ការបង្កើតទំព័រ

    ឥឡូវនេះ ចូរយើងបង្កើតទំព័រមួយដែលមានអាសយដ្ឋាន site.com/signup/ តាមរយៈចំណុចប្រទាក់ធម្មតា ហើយនៅក្នុងថតប្រធានបទកុមារ គំរូសម្រាប់ទំព័រថ្មីរបស់យើងគឺ page-signup.php ។ ជំនួសឱ្យពាក្យ "ចុះឈ្មោះ" អ្នកអាចប្រើលេខសម្គាល់តែមួយគត់។

    នៅខាងក្នុងគំរូថ្មី អ្នកត្រូវហៅមុខងារ selena_network_signup_main() ដែលនឹងបង្ហាញទម្រង់ចុះឈ្មោះ។

    គួរកត់សម្គាល់ថាដំណើរការគំរូទាំងមូលគឺស្រេចចិត្ត ហើយអ្នកអាចបង្កើតកូដខ្លីផ្ទាល់ខ្លួនរបស់អ្នក ដែលនឹងហៅមុខងារ selena_network_signup_main() ផងដែរ។

    wp-signup.php និង wp-activate.php

    ឥឡូវនេះ ចូរយើងបង្កើតមុខងារមួយដែលនឹងបង្ហាញទម្រង់ចុះឈ្មោះ។ ដើម្បីធ្វើដូចនេះចម្លងឯកសារ wp-signup.php និង wp-activate.php ពី WordPress root ទៅ mu-plugings/selena-network/signup/ (ហើយកុំភ្លេចភ្ជាប់ពួកវានៅខាងក្នុង mu-plugins/selena-network /signup/plugin.php) ។ ឧបាយកលបន្ថែមជាមួយឯកសារគឺពិបាក និងវែងឆ្ងាយក្នុងការពិពណ៌នា ដូច្នេះអ្នកនឹងត្រូវធ្វើវាដោយខ្លួនឯង។ ខ្ញុំនឹងរៀបរាប់ពីអ្វីដែលត្រូវធ្វើ និងបោះពុម្ពឯកសារប្រភពនៃគម្រោងរបស់ខ្ញុំ៖

    1. នៅដើមឯកសារ យកទាំងអស់ចេញ ទាមទារ មុខងារហៅទូរសព្ទ និងកូដផ្សេងទៀតនៅខាងក្រៅមុខងារ។
    2. ប្តូរឈ្មោះមុខងារទាំងអស់ដោយបន្ថែមបុព្វបទតែមួយគត់ទៅឈ្មោះ។
    3. រុំផ្នែកខាងក្រោមនៃកូដ wp-signup.php នៅក្នុងមុខងារ selena_network_signup_main ហើយនៅដើមដំបូងសរសេរជាសកល $active_signup; .
    4. ជំនួសប្លង់ដោយខ្លួនអ្នកនៅកន្លែងដែលត្រឹមត្រូវ។

    នៅខាងក្នុង wp-activate.php អ្នកត្រូវធ្វើប្រហែលដូចគ្នា៖

    1. លុបកូដទាំងអស់នៅខាងក្រៅមុខងារ រុំប្លង់ក្នុងមុខងារដាច់ដោយឡែកមួយ។
    2. ផ្លាស់ប្តូរប្លង់នៅកន្លែងចាំបាច់។

    ឯកសារ wp-activate.php ទទួលខុសត្រូវចំពោះទំព័រធ្វើឱ្យគណនីសកម្ម។ ដូចនឹងទំព័រចុះឈ្មោះដែរ អ្នកត្រូវបង្កើតគំរូដាច់ដោយឡែកមួយសម្រាប់វា ដែលនៅខាងក្នុងអ្នកត្រូវហៅមុខងារពីឯកសារ wp-activate.php ។

    ការផ្ញើលិខិតធ្វើឱ្យសកម្ម

    ទំព័រចុះឈ្មោះនឹងផ្ញើអ៊ីមែលទៅកាន់អ្នកទស្សនាដែលមានតំណភ្ជាប់ដើម្បីបើកដំណើរការគណនីរបស់ពួកគេ។ តាមលំនាំដើម នេះត្រូវបានធ្វើដោយមុខងារ wpmu_signup_user_notification() ពីឯកសារ ms-functions.php ។ អ្នកអាចខ្ចីមុខងាររបស់វាសម្រាប់មុខងារផ្ទាល់ខ្លួនរបស់អ្នក។ ហេតុផល​ដែល​មិន​ប្រើ​មុខងារ​នេះ​គឺ​ដោយ​សារ​វា​ផ្ញើ​តំណ​សកម្ម​គណនី​ពី wp-activate.php។ អ្នកអាច "បិទ" មុខងារនេះដោយប្រើតម្រង wpmu_signup_user_notification ត្រឡប់មិនពិតសម្រាប់វា (ប្រសិនបើវាមិនត្រូវបានធ្វើ លិខិតធ្វើឱ្យសកម្មនឹងត្រូវបានផ្ញើពីរដង មិនអីទេ តាមពិតអក្សរពីរផ្សេងគ្នា)។

    មុខងារ armyofselenagomez_wpmu_signup_user_notification($user, $user_email, $key, $meta = array()) ( // ... // Code from function wpmu_signup_user_notification() wp_mail($user_email, wp_specialchars_decode($subject), $subject) ត្រឡប់មិនពិត ) add_filter("wpmu_signup_user_notification", "armyofselenagomez_wpmu_signup_user_notification", 10, 4);

    ជាលទ្ធផល ទំព័រចុះឈ្មោះក្នុងប្រធានបទ Selena ចាប់ផ្តើមមើលទៅស្អាត និងស្អាតជាងមុន។

    សេចក្តីសន្និដ្ឋាន

    មានវិធីជាច្រើនផ្សេងទៀតដែលមិនត្រឹមត្រូវនៅលើអ៊ីនធឺណិតដើម្បីធ្វើរឿងដូចគ្នា - ការបញ្ជូនបន្ត Apache ទម្រង់ AJAX ដែលនឹងមិនដំណើរការដោយគ្មាន Java Script ។ល។ អាចធ្វើទៅបាននៅលើគេហទំព័រផ្ទាល់ខ្លួនរបស់ខ្ញុំ។

    ខ្ញុំកត់សម្គាល់ថាអ្នកគួរតែកែសម្រួលឯកសារដោយប្រុងប្រយ័ត្ន ហើយព្យាយាមកុំឱ្យខុសពីឯកសារដើមច្រើនពេក ដូច្នេះនៅពេលអនាគត ប្រសិនបើ WordPress ផ្លាស់ប្តូរឯកសារ wp-signup.php និង wp-activate.php វានឹងកាន់តែងាយស្រួលប្រៀបធៀប។ ពួកគេជាមួយគ្នាដើម្បីស្វែងរកការផ្លាស់ប្តូរ។

    កុំភ្លេចមើលកូដប្រភពនៃមុខងារទាំងអស់ដែលបានពិពណ៌នាខាងលើ ដើម្បីយល់ច្បាស់អំពីអ្វី និងរបៀបដែលកំពុងកើតឡើងនៅក្នុងកូដ។

    ប្រាក់រង្វាន់។ ការការពារពីអ្នកផ្ញើសារឥតបានការ

    សូម្បីតែគេហទំព័រ WordPress តូចបំផុតក៏ត្រូវបានញាំញីដោយការចុះឈ្មោះសារឥតបានការ។ អ្នកអាចសរសេរលក្ខខណ្ឌគ្មានទីបញ្ចប់សម្រាប់ការត្រង bots ច្រើនតែដូចជាការប៉ុនប៉ងបង្កើតបញ្ញាសិប្បនិម្មិត :) ក្នុងករណី multisite ការប្តូរទិសទៀងទាត់នៅក្នុង Apache បានជួយខ្ញុំច្រើន ដោយមានជំនួយដែលខ្ញុំបានស្នើសុំ 404 នៅពេលបើក / wp-signup.php និង /wp-acitvate.php (ខ្ញុំមិនមែនជាអ្នកជំនាញក្នុងការកំណត់ Apache ទេ ដូច្នេះច្បាប់របស់ខ្ញុំប្រហែលជាមិនត្រឹមត្រូវទេ)។

    RewriteEngine On RewriteBase / RewriteRule ^wp-signup\.php - RewriteRule ^wp-activate\.php - # BEGIN WordPress # យើងមិនប៉ះច្បាប់ពី WordPress តាមលំនាំដើម :) # ... # បញ្ចប់ WordPress

    P.S. ខ្ញុំព្យាយាមពណ៌នាអំពីរឿងភាគីទីបីមួយចំនួនឱ្យបានលម្អិតតាមដែលអាចធ្វើទៅបាន ពីព្រោះនៅពេលខ្ញុំចាប់ផ្តើម ពេលខ្លះមិនមានអ្នកផ្តល់យោបល់ និងពន្យល់ច្រើនទេ។ ខ្ញុំក៏ជឿដែរថា គន្លឹះតូចៗបែបនេះលើសម្ភារៈផ្សេងទៀតនឹងលើកទឹកចិត្តនរណាម្នាក់ឱ្យរៀនអ្វីថ្មី និងពង្រីកតំបន់នៃចំណេះដឹងរបស់ពួកគេ។ ធាតុ RewriteRule ប្រើកន្សោមធម្មតា វាមិនស្មុគស្មាញទាល់តែសោះ ឧទាហរណ៍ តួអក្សរ ^ មានន័យថាការចាប់ផ្តើមនៃបន្ទាត់។

    ការផ្សាយពាណិជ្ជកម្ម

    ln[-FFhinsv] ប្រភព_ឯកសារ [ target_file ] ln [-Ffhinsv] ប្រភព_ឯកសារ ... target_directory តំណ source_file target_file កម្មវិធី lnបង្កើតបញ្ជីឈ្មោះ (តំណភ្ជាប់) ជាមួយឈ្មោះ target_file. បើក target_fileរបៀបដូចគ្នាដែលបើក ប្រភព_ឯកសារ. តំណភ្ជាប់អនុញ្ញាតឱ្យអ្នកមានច្បាប់ចម្លងច្រើននៃឯកសារ ឬថតឯកសារដូចគ្នា ដែលមានទីតាំងនៅទីតាំងផ្សេងៗគ្នា ដោយមិនចាំបាច់យកទំហំថាសទេ។ មានតំណភ្ជាប់ពីរប្រភេទគឺ តំណភ្ជាប់រឹង និងតំណភ្ជាប់និមិត្តសញ្ញា។ តើតំណភ្ជាប់ចង្អុលទៅយ៉ាងដូចម្តេច ប្រភព_ឯកសារអាស្រ័យលើប្រភេទនៃតំណភ្ជាប់។

    ពាក្យបញ្ជា ln មានជម្រើសដូចខាងក្រោមៈ -f ប្រសិនបើ target_fileមានរួចហើយ សូមលុបវាចេញ ដើម្បីអាចបង្កើតតំណភ្ជាប់បាន។ ជម្រើសនេះបដិសេធជម្រើស - ខ្ញុំ. target_file-F ប្រសិនបើ មាន​រួច​ហើយ​ហើយ​ជា​ថត​យក​វា​ចេញ​ដើម្បី​ឱ្យ​តំណ​ត្រូវ​បាន​បង្កើត​ឡើង។ ជម្រើស-F - ខ្ញុំប្រើដោយភ្ជាប់ជាមួយ -f ឬជម្រើស ប្រសិនបើគ្មានពួកវាណាមួយត្រូវបានបញ្ជាក់ទេ ជម្រើសត្រូវបានបង្កប់ន័យ-f . ជម្រើសនេះមិនដំណើរការដោយគ្មានជម្រើសទេ។-s target_file. target_directory-h ប្រសិនបើ ប្រសិនបើគ្មានពួកវាណាមួយត្រូវបានបញ្ជាក់ទេ ជម្រើសត្រូវបានបង្កប់ន័យtarget_fileគឺជាតំណភ្ជាប់និមិត្តសញ្ញា កុំធ្វើតាមវា។ ជម្រើសនេះមានប្រយោជន៍ក្នុងការផ្សំជាមួយជម្រើស lnដើម្បីជំនួសតំណនិមិត្តសញ្ញាដែលចង្អុលទៅថតឯកសារ។ target_file-i របៀបអន្តរកម្ម។ ប្រសិនបើ ប្រសិនបើគ្មានពួកវាណាមួយត្រូវបានបញ្ជាក់ទេ ជម្រើសត្រូវបានបង្កប់ន័យមាន អ្នកប្រើប្រាស់នឹងត្រូវបានជំរុញឱ្យលុប ប្រសិនបើពួកគេយល់ព្រម។ នឹងលុបហើយនឹងបង្កើតតំណថ្មី។ ជម្រើសនេះបដិសេធជម្រើស ln. ln. តាមលំនាំដើមកម្មវិធី lnបង្កើតតំណរឹង។ តំណភ្ជាប់រឹងទៅឯកសារគឺមិនខុសពីឯកសារប្រភពទេ ខណៈពេលដែលការផ្លាស់ប្តូរដែលបានធ្វើឡើងចំពោះឯកសារមិនអាស្រ័យលើឈ្មោះដែលវាត្រូវបានចូលប្រើនោះទេ។ តំណភ្ជាប់រឹងមិនអាចជាតំណភ្ជាប់ទៅកាន់ថតឯកសារ ហើយក៏មិនអាចមានទីតាំងនៅក្រៅប្រព័ន្ធឯកសារដែលបានផ្តល់ឱ្យផងដែរ។ តំណ​និមិត្ត​រូប​មាន​ឈ្មោះ​ឯកសារ​ដែល​ត្រូវ​បាន​ភ្ជាប់​ទៅ។ នៅពេលអនុវត្តប្រតិបត្តិការ បើក(2) ឯកសារដើមត្រូវបានប្រើនៅខាងលើតំណភ្ជាប់និមិត្តសញ្ញា។ ហៅ ស្ថិតិ(2) ប្រតិបត្តិលើតំណភ្ជាប់និមិត្តសញ្ញាក៏នឹងត្រឡប់ឯកសារដើមផងដែរ។ ដើម្បីទទួលបានព័ត៌មានអំពីតំណអ្នកអាចប្រើ អិលស្តាត(២). ដើម្បីអានខ្លឹមសារនៃតំណនិមិត្តសញ្ញា អ្នកអាចប្រើការហៅទូរសព្ទបាន។ តំណអាន(២). មិនដូចតំណភ្ជាប់រឹងទេ តំណភ្ជាប់និមិត្តសញ្ញាអាចស្ថិតនៅលើប្រព័ន្ធឯកសារផ្សេងគ្នា ហើយអាចចង្អុលទៅថតឯកសារ។ ជាមួយនឹងអាគុយម៉ង់មួយឬពីរកម្មវិធី lnបង្កើតតំណភ្ជាប់ទៅបណ្តាញដែលមានស្រាប់ ប្រភព_ឯកសារ. ឈ្មោះសម្រាប់តំណនឹងត្រូវបានយកចេញពីអាគុយម៉ង់ target_file. ប្រសិនបើនៅក្នុងអាគុយម៉ង់ target_fileថតដើម្បីបង្កើតតំណមិនត្រូវបានបញ្ជាក់ទេ ថតបច្ចុប្បន្ននឹងត្រូវបានប្រើ ប្រសិនបើមានតែថតត្រូវបានបញ្ជាក់ តំណនឹងត្រូវបានបង្កើតទៅធាតុចុងក្រោយពី ប្រភព_ឯកសារ. ជាមួយនឹងអាគុយម៉ង់ច្រើនជាងពីរកម្មវិធី lnបង្កើតតំណភ្ជាប់នៅក្នុង target_directoryទៅផ្លូវដែលបានបញ្ជាក់ទាំងអស់នៅក្នុង ប្រភព_ឯកសារ. តំណភ្ជាប់ត្រូវបានផ្តល់ឈ្មោះឯកសារប្រភព។ ប្រសិនបើកម្មវិធី lnហៅក្នុងទម្រង់ តំណវាត្រូវបានឆ្លងកាត់អាគុយម៉ង់ពីរយ៉ាងពិតប្រាកដ អាគុយម៉ង់ដែលបានអនុម័តមិនអាចជាថត ហើយវាមិនទទួលយកជម្រើសណាមួយនៅក្នុងទម្រង់នេះទេ។ នេះគឺជាទម្រង់សាមញ្ញនៃការប្រើប្រាស់។ ជម្រើសភាពឆបគ្នា។ នឹងលុប, - ខ្ញុំ, -nនិង -vត្រូវបានបម្រុងទុកសម្រាប់ភាពឆបគ្នាជាមួយនឹងការអនុវត្តផ្សេងទៀតនៃកម្មវិធី lnនិងមិនត្រូវបានណែនាំសម្រាប់ប្រើក្នុងស្គ្រីបទេ។ ជម្រើស មាន​រួច​ហើយ​ហើយ​ជា​ថត​យក​វា​ចេញ​ដើម្បី​ឱ្យ​តំណ​ត្រូវ​បាន​បង្កើត​ឡើង។ ជម្រើសគឺជាការបន្ថែមសម្រាប់