ឯកសារមុខងារគឺជាជំនួយការកម្សាន្តក្នុងការពង្រីកមុខងាររបស់គេហទំព័រ! ជាពិសេសប្រសិនបើប្រើសម្រាប់គោលបំណងដែលបានគ្រោងទុក - ទោះជាយ៉ាងណា ម្ចាស់ប្លក់/គេហទំព័រជាច្រើនគឺអស្ចារ្យណាស់ក្នុងការប្រែក្លាយ functions.php ទៅជា hodgepodge ។
នៅក្នុងអាជីវកម្មណាមួយ មានភាពរហ័សរហួន និងការរឹតបន្តឹង (ការរឹតបន្តឹង ជាញឹកញាប់ឡូជីខល) ហើយដូច្នេះកូដដែលអាចប្រតិបត្តិបានមួយចំនួនដែលត្រូវបានរចនាឡើងដើម្បីកែតម្រូវប៉ារ៉ាម៉ែត្រនៃស្នូល WP (មិនមែនស្បែក) វាជាការត្រឹមត្រូវជាងក្នុងការដកចេញពីគំរូ ...
នៅពេលដែលការសន្ទនានិយាយអំពីការធ្វើទំនើបកម្មមុខងារនៃគេហទំព័រ នៅក្នុងបន្ទាត់នៃអត្ថបទ "ដោយគ្មានកម្មវិធីជំនួយ ... " វាពិតជាត្រូវបានណែនាំឱ្យរុញប្លុកទាំងអស់នៃកូដចូលទៅក្នុង functions.php រឿងព្រេងនិទាន។ មិនត្រឹមត្រូវទេ!
វាសមហេតុផលជាងក្នុងការផ្ទេរផ្នែកបន្ថែមបច្ចេកទេសសុទ្ធសាធទាំងអស់ (មិនទាក់ទងដោយផ្ទាល់ទៅនឹងរចនាប័ទ្មគំរូ) ទៅក្នុងកម្មវិធីជំនួយដែលបានរៀបចំសម្រាប់ការចុះឈ្មោះរបស់ពួកគេ។
តោះបង្កើតវា! ហើយក៏និយាយពីគុណសម្បត្តិ និងគុណវិបត្តិ (ដែលមានតិចជាង)...
ផ្នែកនៃអត្ថបទ៖
របៀបបង្កើតកម្មវិធីជំនួយរបស់អ្នក។
ពីអត្ថបទខាងក្រោមយើងនឹងរៀនពីរបៀបបង្កើតកម្មវិធីជំនួយផ្ទាល់ខ្លួនរបស់អ្នកដោយដៃរបស់អ្នកផ្ទាល់: យើងនឹងយល់លម្អិតទាំងអស់ nuances ។ យើងនឹងរកឃើញថាតើគុណសម្បត្តិ និងគុណវិបត្តិមានអ្វីខ្លះ (មានគុណវិបត្តិតិចជាង!! ហើយផ្ទុយទៅវិញ ទាំងនេះមិនមែនជាគុណវិបត្តិទាល់តែសោះ ប៉ុន្តែភាពងាយស្រួលមួយ ឬផ្សេងទៀតសម្រាប់អ្នកគ្រប់គ្រងនីមួយៗ)
តើអ្វីជាភាពខុសគ្នារវាងឯកសារ functions.php និងកម្មវិធីជំនួយ
ហេតុអ្វីបានជាកូដមួយចំនួនដែលទាក់ទងផ្ទាល់នឹងមុខងាររបស់គេហទំព័រត្រូវបានផ្ទេរទៅកម្មវិធីជំនួយដោយឡែក?
ឯកសារមុខងារខ្លួនវា គោលបំណង និងភាពស៊ីសង្វាក់គ្នារបស់វាមិនខុសពីកម្មវិធីជំនួយទេ (គ្រាន់តែជាកម្មវិធីជំនួយក្នុងស្បែក))! - ភារកិច្ចចម្បងរបស់វាគឺដើម្បីបង្កើនគំរូជាក់លាក់ (សកម្ម) ជាមួយនឹងមុខងារមានប្រយោជន៍។
ឧទាហរណ៍ "ការរុករក" ដែលជាកន្លែងដែលឡូជីខល ម៉ឺនុយប៊ូតុងត្រូវបានកំណត់រចនាប័ទ្មជាមួយ CSS ស្របតាមរចនាប័ទ្មនៃរចនាប័ទ្មសកម្ម - វាអាចជាការត្រឹមត្រូវជាងក្នុងការទុកវានៅក្នុងឫសនៃគំរូ។
តើអ្វីទៅជាអត្ថប្រយោជន៍ - ដើម្បីបំបែកឯកសារមុខងារទៅជាឯកសារដាច់ដោយឡែកឬកម្មវិធីជំនួយដាច់ដោយឡែក?
ឧទាហរណ៍ កន្លែងសាមញ្ញបំផុត - អ្នកសម្រេចចិត្តផ្លាស់ប្តូរគំរូ!? ... ជាលទ្ធផល ការអភិវឌ្ឍន៍មុខងារទាំងអស់នឹងត្រូវបាត់បង់ ព្រោះកូដដែលមានប្រយោជន៍ទាំងអស់ស្ថិតនៅក្នុងឯកសារមុខងារ (ខ្ញុំធ្លាប់ឃើញទំហំឯកសារបែបនេះ 750KILO)
ជាការពិតណាស់ អ្នកអាចផ្ទេរឯកសារនៃមុខងារទៅប្រធានបទថ្មី ប៉ុន្តែភាគច្រើន បើគ្មានការកែសម្រួលដែលត្រូវការពេលវេលាមានប្រយោជន៍ច្រើនទេ អ្នកមិនអាចធ្វើវាបានទេ៖ ស្វា និងការងារ)
ហើយបន្ទាប់មក:
លំដាប់នៃការផ្ទុកឯកសារគេហទំព័រ
ដោយសង្ខេប៖ លំដាប់នៃការផ្ទុកឯកសារស្នូលនៃគេហទំព័រក្នុងឧទាហរណ៍របស់យើងមានដូចខាងក្រោម - កម្មវិធីជំនួយសកម្មនៃគេហទំព័រ (ពីថតកម្មវិធីជំនួយ) និងមាតិការបស់ពួកគេត្រូវបានផ្ទុកមុនបន្តិច ហើយមានតែឯកសារ functions.php ដែលមានមាតិកាគឺ ដំណើរការ។ វាទាំងអស់គិតជាមិល្លីវិនាទី ហើយវាស្ទើរតែមិនមានតម្លៃក្នុងការនិយាយយ៉ាងខ្លាំងអំពីការបង្កើនល្បឿនទំព័រខ្លួនឯងនោះទេ។
ទោះបីជាវាហាក់បីដូចជាហេតុផលមួយក្នុងចំណោមហេតុផលសម្រាប់ការបញ្ជាទិញបែបនេះដែលបង្កើតឡើងដោយអ្នកអភិវឌ្ឍន៍ ដែលកន្លែងទីពីរត្រូវបានផ្តល់ទៅឱ្យឯកសារមុខងារ (ដូចជា សន្មតធាតុស្រាលជាង) គ្រាន់តែជាការពិតនៃការប្រើប្រាស់កម្មវិធីជំនួយដែលរីករាលដាលជាញឹកញាប់នៃមាតិកាដ៏ធំ ...
នរណាម្នាក់នឹងឧទាន៖ កម្មវិធីជំនួយមួយទៀត ...? ពិបាក!
ហើយខ្ញុំនិយាយថាវានឹងមិនប៉ះពាល់ដល់ល្បឿនណាមួយទេ ... ជាជាង - ផ្ទុយទៅវិញប្រសិនបើអ្នកចូលទៅជិតការបង្កើតគេហទំព័រដោយគិត។
ជាងនេះទៅទៀត អត្ថប្រយោជន៍នៃការផ្ទេរកូដមួយចំនួនគឺជាក់ស្តែងនៅក្នុងមួយផ្សេងទៀត ពោលគឺល្បឿននៃការផ្ទុកគេហទំព័រមិនអាស្រ័យលើចំនួនកម្មវិធីជំនួយសកម្មនោះទេ ប៉ុន្តែនៅលើខ្លឹមសាររបស់វា! ដូច្នេះហេតុអ្វីបានជាមិនបង្រួមឯកសារមុខងារដែលដូចដែលបានរៀបរាប់គឺត្រូវបានផ្ទុកបន្តិចក្រោយមក ..? ហើយក៏ជាកម្មវិធី PLUGIN កម្រិតគំរូដ៏ធំពេញលេញផងដែរ! ដូច្នេះតើលេខកូដរបស់គាត់ភាគច្រើននៅឯណា?
តាមគំនិតរបស់ខ្ញុំ គំរូ (សកម្ម និងធ្វើការ) គួរតែមានតែប៉ារ៉ាម៉ែត្រជាក់លាក់របស់វាប៉ុណ្ណោះ។
ដំណើរកំសាន្តទៅកាន់លេខនព្វន្ធ...
- ផ្ទុកនៅពេលក្រោយ សំណួរគឺ ហេតុអ្វីមិនផ្លាស់ទីវាទៅកន្លែងដែលដំណើរការកូដត្រូវបានអនុវត្តមុនគេ ហើយយោងទៅតាមការកែតម្រូវទៅលើប៉ារ៉ាម៉ែត្រស្នូល WP ដែលបានបញ្ជាក់ដោយអ្នកគ្រប់គ្រងនឹងត្រូវបានអានលឿនជាងមុន និងដំណើរការនៅដំណាក់កាលដែលត្រូវគ្នានៃគេហទំព័រ។ បើកដំណើរការ?
- ភាពរហ័សរហួនដ៏ល្បីល្បាញ និងការរៀបចំឡូជីខលនៃមុខងាររបស់គេហទំព័រ។
- ភាពងាយស្រួល ដែលមិនសំខាន់!
លើសពីនេះទៀតដូចដែលវាត្រូវបានគេនិយាយ ឯកសារមុខងារគឺជាកម្មវិធីជំនួយដូចគ្នា - ម្តងទៀតខ្ញុំនឹងសួរថាហេតុអ្វីបានជារុញអ្វីគ្រប់យ៉ាងដែលអ្នកចូលទៅក្នុងវា? ហើយនៅក្នុងដំណើរការនៃការធ្វើការជាមួយគេហទំព័រនេះ មានការភ័ន្តច្រឡំនៅក្នុងឯកសារកូដដ៏ធំ និងពិបាកអាន ដែលតាមវិធីនេះ មានការហើមពោះមិនគួរឱ្យជឿ និងមិនសមហេតុផលដោយខ្លឹមសាររបស់វា។
វាកាន់តែងាយស្រួល និងឡូជីខលក្នុងការបង្កើតកម្មវិធីជំនួយទម្ងន់ស្រាល កំណត់រចនាសម្ព័ន្ធ និងបំភ្លេច...
នៅក្នុងពាក្យមួយមនុស្សគ្រប់គ្នាសម្រេចចិត្តដោយខ្លួនឯង: ថាតើត្រូវស្តាប់បទពិសោធន៍ផ្ទាល់ខ្លួនរបស់គាត់ឬតាមគំនិតរបស់អ្នកនិពន្ធនៃអត្ថបទអប់រំជាក់លាក់មួយ។
ខណៈពេលដែលការរៀនធ្វើតាមនៅក្នុងបណ្ណាល័យ WordPress ប៉ុន្តែមិនមែនដោយអត្ថបទ ... ពីអត្ថបទវាអាចទៅរួចដើម្បីទទួលបានគំនិតតែមួយឬមួយផ្សេងទៀត ...
ដូចម្ដេចលោកម្ចាស់)
... សម្រាប់អ្នកដែលចាប់អារម្មណ៍៖
អ្នកអាចរៀនច្បាប់ទាំងអស់នៃខឺណែល (ហើយតាមវិធីនេះ លំដាប់នៃការផ្ទុកឯកសារខឺណែល)) តាមរបៀបដ៏អស្ចារ្យនៅក្នុងកូដប្លក, រូបភាព។
... ក្នុងអត្ថបទមួយក្នុងចំណោមអត្ថបទខាងក្រោម គ្រាន់តែជាប្រធានបទបែបនេះប៉ុណ្ណោះ! ... និងតំណភ្ជាប់ទៅកាន់ទំព័រមានប្រយោជន៍។
!.. ដោយការជាវគេហទំព័រថ្មីៗ -
...ចែកផ្លូវគ្នាល្ងង់..!
របៀបបង្កើតកម្មវិធីជំនួយបន្ថែមនៃឯកសារ functions.php
កម្មវិធីជំនួយនៅក្នុងសំណួរគឺជាដំណោះស្រាយដ៏សាមញ្ញមួយ ប៉ុន្តែការសិក្សាគួរតែចាប់ផ្តើមពីដំបូង!
លើសពីនេះទៅទៀត ដើម្បីសម្រេចបាននូវគោលដៅដែលបានយកនៅក្នុងអត្ថបទ មិនចាំបាច់មានកម្មវិធីជំនួយដ៏មានឥទ្ធិពលទេ!
ចូលទៅកាន់ផ្ទាំងបញ្ជាម៉ាស៊ីន (ឬ FTP) ហើយបើកកម្មវិធីគ្រប់គ្រងឯកសារ។
បើកថតកម្មវិធីជំនួយ ហើយបង្កើតថតឯកសារផ្សេងទៀតនៅក្នុងវា (ថតឯកសារសម្រាប់កម្មវិធីជំនួយរបស់យើង)។ ឈ្មោះណាមួយជាភាសាឡាតាំង។ ខ្ញុំមានឈ្មោះ "សាកល្បង" ជាឧទាហរណ៍។
សូមចំណាំថាឈ្មោះរបស់កម្មវិធីជំនួយនៅក្នុងផ្ទាំងគ្រប់គ្រងនឹងដូចគ្នានឹងវាត្រូវបានសរសេរនៅក្នុងបឋមកថាព័ត៌មានឈ្មោះកម្មវិធីជំនួយ: សាកល្បង (សូមមើលមតិយោបល់) ។
បើកថតដែលបានបង្កើតហើយបង្កើតឯកសារកម្មវិធីជំនួយសំខាន់នៅក្នុងវា៖
... ជាមួយឈ្មោះមួយ និយាយថា my-functions.php ហើយបន្ថែមបន្ទាត់បែបនេះទៅតួរបស់វា (ហើយឈ្មោះឯកសារអាចជាអ្វីទាំងអស់)
បន្ទាត់នៅក្នុងមតិយោបល់ - ព័ត៌មានអំពីកម្មវិធីជំនួយដែលនឹងបង្ហាញនៅក្នុងផ្ទាំងគ្រប់គ្រង (ម៉ឺនុយកម្មវិធីជំនួយ) ។
ភ្លាមៗបន្ទាប់ពីបង្កើតថតឯកសារ និងកម្មវិធីជំនួយរបស់អ្នកនឹងបង្ហាញនៅក្នុងផ្ទាំងគ្រប់គ្រង។ សូមក្រឡេកមើល។
ក្នុងនាមជាអតីត អ្នកអាចបើកដំណើរការវាបានមួយរយៈ ប៉ុន្តែគ្មានអ្វីកើតឡើងទេ កម្មវិធីជំនួយនៅតែទំនេរ។
អស់ហើយ!! កម្មវិធីជំនួយដ៏សាមញ្ញមួយត្រូវបានបង្កើតឡើង ហើយអ្វីដែលគួរឱ្យកត់សម្គាល់គឺដោយដៃរបស់គាត់ផ្ទាល់ និងសម្រាប់ផលប្រយោជន៍របស់គាត់ (ដូចដែលឆ្មា Matroskin ធ្លាប់និយាយ)។
ត្រង់នេះ វាំងនននៃកម្មវិធីធ្លាក់…
... ធូលីដ៏សោកសៅធ្លាក់លើផ្លូវលំ ...
ហើយដោយវិធីនេះខ្សែភាពយន្តដែលមានប្រយោជន៍ពីស៊េរី "ដោយគ្មានកម្មវិធីជំនួយ" - មើល, គិតថា, តើវាមានតម្លៃចាកចេញពីកូដដែលបានស្នើឡើងនៅក្នុងវីដេអូនៅក្នុងឯកសារមុខងារ ??
ប្រាកដណាស់ អ្នកបានជួបប្រទះម្តងហើយម្តងទៀតនូវការពិតដែលថាអ្នកត្រូវបន្ថែមផ្នែកខ្លះនៃកូដសម្រាប់គេហទំព័រ WordPress របស់អ្នក ដើម្បីបន្ថែមមុខងារថ្មី។ ខ្ញុំមិននិយាយអំពីស្គ្រីប Google Analytics ដែលអ្នកបញ្ចូលទៅក្នុងផ្នែកបឋមកថានៃប្រធានបទរបស់អ្នកទេ។ ទេ ខ្ញុំកំពុងនិយាយអំពីលេខកូដតូចៗដែលអ្នកបានរកឃើញនៅលើវេទិកានៅលើអ៊ីនធឺណិត ហើយបានរត់ភ្លាមៗដើម្បីបន្ថែមវាទៅក្នុងឯកសាររបស់អ្នក functions.php.
ចូរនិយាយដោយស្មោះត្រង់ អ្នកបានធ្វើរឿងនេះយ៉ាងហោចណាស់ម្តងហើយមែនទេ? ហើយនេះគឺអាចយល់បានព្រោះវាត្រូវបានសរសេរនៅលើវេទិកា - បន្ថែមកូដនេះទៅ functions.php នៃប្រធានបទ WordPress របស់អ្នក។
ការពិតគឺការបន្ថែមរាល់កូដដែលអ្នករកឃើញនៅលើអ៊ីនធឺណិតទៅ functions.php គឺ មិនតែងតែជាគំនិតល្អទេ។... ដំណោះស្រាយដែលមានសុវត្ថិភាពជាងគឺដើម្បីបង្កើតកម្មវិធីជំនួយខ្នាតតូចផ្ទាល់ខ្លួនរបស់អ្នកជាមួយនឹងកូដនេះ។
នៅក្នុងការបង្រៀននេះ យើងនឹងប្រាប់អ្នកពីករណីណាខ្លះដែលអ្នកអាចបន្ថែមកូដទៅ functions.php ហើយក្នុងនោះវាប្រសើរជាងក្នុងការប្រើប្រាស់កម្មវិធីជំនួយដាច់ដោយឡែក។ យើងក៏នឹងបង្ហាញអ្នកពីរបៀបដែលអ្នកអាចបង្កើតកម្មវិធីជំនួយផ្ទាល់ខ្លួនដោយខ្លួនឯង ហើយបន្ថែមកូដរបស់អ្នកទៅវា។
តើអ្វីទៅជា functions.php
ប្រសិនបើអ្នកធ្លាប់រមូរតាមឯកសារគេហទំព័រ WordPress របស់អ្នក អ្នកប្រហែលជាជំពប់ដួលលើឯកសារ functions.php ជាច្រើន។ ឯកសារ functions.php ដែលយើងនឹងនិយាយអំពីការបង្រៀននេះមានទីតាំងនៅក្នុងថតឯកសារ៖ wp-contentthemesyour_themefunctions.php ។
ជាក់ស្តែង នេះគឺជាឯកសារដូចគ្នាដែលរក្សាទុកមុខងារ និងការកំណត់ទាំងអស់នៃស្បែកជាក់លាក់របស់អ្នក បច្ចុប្បន្នសកម្ម... យកចិត្តទុកដាក់លើពាក្យ "សកម្ម" ពីព្រោះនេះនឹងក្លាយជាសារសំខាន់នៃមេរៀននេះ។
ហេតុអ្វីបានជាវាជាគំនិតអាក្រក់ក្នុងការប្រើ functions.php ជានិច្ច
កុំយល់ខុស វាជារឿងធម្មតាទេក្នុងការប្រើ functions.php សម្រាប់ផ្នែកតូចៗនៃកូដក្នុងពីរជួរ។ យើងកំពុងនិយាយអំពីការពិតដែលថាវាមិនគួរឱ្យចង់ប្រើ functions.php ជាឃ្លាំងសម្រាប់អ្វីគ្រប់យ៉ាងដែលអ្នកបន្ថែមកូដ។ វាមិនមែនជាដំណោះស្រាយមួយទំហំសមសម្រាប់គ្រប់ស្ថានភាពនោះទេ។
ហេតុផល #1 ។
ប្រសិនបើការអាប់ដេតត្រូវបានចេញផ្សាយសម្រាប់រូបរាងរបស់អ្នក អ្នកនឹងបាត់បង់អ្វីគ្រប់យ៉ាងដែលអ្នកបានបន្ថែមនៅក្នុងឯកសារ functions.php។ ខ្ញុំដឹងពីអ្វីដែលអ្នកកំពុងគិត ប៉ុន្តែតើវាត្រឹមត្រូវសម្រាប់ស្ថានភាពទាំងនេះទេ?
ជាការពិតណាស់មាន។ ប៉ុន្តែក៏មានមនុស្សជាច្រើនដែលមិនដឹងថាអ្វីទៅជាប្រធានបទកុមារ។ ឬមានមនុស្សដែលបានស្នើឱ្យអ្នកជួយបន្ថែមបំណែកនៃកូដទៅរចនាប័ទ្មរបស់ពួកគេ។
ដូច្នេះហេតុផលនេះគឺស្ថិតនៅក្នុងបញ្ជីនេះ។ ប្រសិនបើអ្នកបន្ថែមកូដទៅ functions.php ដោយមិនប្រើប្រធានបទកុមារ នេះគឺជាការហៅឱ្យភ្ញាក់ដំបូងរបស់អ្នក។
ហេតុផល # 2 ។
ទោះបីជាអ្នកបានកំណត់រចនាសម្ព័ន្ធ និងប្រើរចនាប័ទ្មកុមារយ៉ាងត្រឹមត្រូវក៏ដោយ។ តើមានអ្វីកើតឡើងប្រសិនបើអ្នកចង់ប្តូរទៅរចនាប័ទ្មការរចនាផ្សេង? ខ្ញុំសង្ឃឹមថាអ្នកបានបន្ថែមមតិយោបល់ទៅរាល់ការផ្លាស់ប្តូរដែលអ្នកធ្វើនៅក្នុងឯកសារ functions.php របស់អ្នក ពីព្រោះបើគ្មានវាទេ ការផ្លាស់ទីទៅប្រធានបទផ្សេងទៀតនឹងឈឺចាប់ខ្លាំង។ ខ្ញុំគិតថាអ្នកទទួលបានគំនិត។
ហេតុផលលេខ ៣ ។
ប្រសិនបើអ្នកបានបន្ថែមកូដទៅ functions.php ដែលបំផ្លាញគេហទំព័ររបស់អ្នកដោយមិននឹកស្មានដល់ ហើយអ្នកឃើញអេក្រង់ពណ៌សទទេ - អ្នកនឹងត្រូវការម៉ាស៊ីនភ្ញៀវ FTP ដើម្បីផ្ទុកឡើង "ខូច" functions.php កែសម្រួលវា ហើយបញ្ចូលវាត្រឡប់ទៅគេហទំព័រវិញ។ ភាពរីករាយបែបនេះចំពោះខ្លួនឯង។
ពេលណាត្រូវប្រើ functions.php
ការប្រើ functions.php ត្រឹមត្រូវសម្រាប់ប្រធានបទកុមារដែលសកម្មបច្ចុប្បន្នគឺជាជម្រើសត្រឹមត្រូវ។ ប៉ុន្តែចាំថា ខ្ញុំបានផ្តោតលើពាក្យនេះ " សកម្ម"?
ប្រសិនបើអ្នកបន្ថែមបំណែកនៃកូដដែលមានប្រយោជន៍តែនៅពេលធ្វើការជាមួយស្បែកពិសេសនេះ នោះអ្នកអាចប្រើ functions.php (នៅក្នុងប្រធានបទកុមារ) ដោយសុវត្ថិភាព។ នេះគឺជាឧទាហរណ៍មួយចំនួនដែលនេះអាចជាការសមរម្យ:
- ការបន្ថែមសន្លឹករចនាប័ទ្មមួយផ្សេងទៀត (.css) សម្រាប់រូបរាងរបស់អ្នក។
- ផ្លាស់ប្តូរប្រវែងអត្ថបទដកស្រង់ដើម្បីធ្វើឱ្យគេហទំព័រមើលទៅប្រសើរជាងមុន។
- ការបន្ថែមពុម្ពអក្សរផ្ទាល់ខ្លួនសម្រាប់រចនាប័ទ្មបច្ចុប្បន្ន
- ការបន្ថែមឯកសារធ្វើមូលដ្ឋានីយកម្មដើម្បីបកប្រែប្រធានបទបច្ចុប្បន្ន
ម្យ៉ាងវិញទៀត នៅពេលណាដែលអ្នកបន្ថែម ឬផ្លាស់ប្តូរអ្វីដែលទាក់ទងនឹងប្រធានបទបច្ចុប្បន្នជាក់លាក់ណាមួយ សូមមានអារម្មណ៍សេរីក្នុងការប្រើប្រាស់ functions.php។
តើនៅពេលណាដែលវាប្រសើរជាងក្នុងការធ្វើដោយគ្មាន functions.php
ការប្រើ functions.php ដើម្បីបន្ថែមវត្ថុ និងមុខងារជាសកលបន្ថែមទៀត ដែលតាមទ្រឹស្តីអាចមានប្រយោជន៍សម្រាប់អ្នកសម្រាប់ប្រធានបទមួយផ្សេងទៀត គឺជាគំនិតមិនល្អ។
នេះគឺជាឧទាហរណ៍មួយចំនួននៃពេលដែលវាល្អប្រសើរជាងមុនដើម្បីធ្វើដោយគ្មាន functions.php:
- ការបង្កើតធាតុក្រាហ្វិកផ្ទាល់ខ្លួនដែលអ្នកនឹងប្រើញឹកញាប់
- ការបង្កើតកូដខ្លីផ្ទាល់ខ្លួន
- ការបន្ថែមកូដឯករាជ្យនៃប្រធានបទ (កូដ Google Analytics ។ល។)
ក្នុងករណីបែបនេះ វាជាការល្អបំផុតក្នុងការរក្សាកូដនេះដោយមិនគិតពីប្រធានបទរបស់អ្នក។ ហើយអ្នកអាចធ្វើវាបានដោយប្រើកម្មវិធីជំនួយផ្ទាល់ខ្លួន។
ឥឡូវនេះអ្នកកំពុងគិត - ឆ្ងល់អំពីការបង្កើតកម្មវិធីជំនួយ តើអ្នកអាចកែសម្រួល functions.php នៅពេលណា? ពិបាកពេកហើយ! ជឿខ្ញុំ នេះមិនមែនជាករណីនោះទេ។ នេះត្រូវបានធ្វើយ៉ាងរហ័ស និងងាយស្រួល។
របៀបដំឡើងកម្មវិធីជំនួយផ្ទាល់ខ្លួនជំនួសឱ្យ functions.php
ដើម្បីបង្កើតកម្មវិធីជំនួយផ្ទាល់ខ្លួនរបស់អ្នកសម្រាប់ការរក្សាទុកកូដរបស់អ្នក អ្នកត្រូវការ៖
- បង្កើតឯកសារអត្ថបទដោយប្រើកូដរបស់អ្នក ហើយរក្សាទុកវាជាឯកសារ .php
- ខ្ចប់ឯកសារ .php លទ្ធផលទៅក្នុងប័ណ្ណសារ .zip
- ដំឡើងបណ្ណសារនេះជាកម្មវិធីជំនួយ WordPress ធម្មតានៅក្នុងម៉ឺនុយ កម្មវិធីជំនួយ → បន្ថែមថ្មី។
នោះហើយជាវាគ្រាន់តែ 3 សកម្មភាព។
ជំហាន 1. បង្កើតឯកសារ .php ជាមួយលេខកូដរបស់អ្នក។
បើក Notepad នៅលើកុំព្យូទ័ររបស់អ្នក ហើយបិទភ្ជាប់អត្ថបទខាងក្រោម៖
ជាការពិត អ្នកអាចប្រើឈ្មោះរបស់អ្នកសម្រាប់កម្មវិធីជំនួយនៅក្នុងបន្ទាត់ឈ្មោះកម្មវិធីជំនួយ៖
រក្សាទុកឯកសារ ហើយដាក់ឈ្មោះវាប្លែកមួយចំនួន ដើម្បីកុំឱ្យ WordPress មិនច្រឡំកម្មវិធីជំនួយរបស់អ្នកជាមួយនឹងអ្វីដែលបានដំឡើងរួចទៅហើយ។ ឧទាហរណ៍៖ wpcafe-custom-functions.php ។
បាទ/ចាស កុំភ្លេចជ្រើសរើសប្រភេទឯកសារ "ទាំងអស់" ហើយបន្ថែមផ្នែកបន្ថែម .php នៅពេលរក្សាទុក៖
ជំហានទី 2. បង្កើតប័ណ្ណសារ .zip
ខ្ញុំមិនគិតថាត្រូវការការពន្យល់នៅទីនេះទេ។ គ្រាន់តែបង្កើតប័ណ្ណសារ .zip ជាមួយឯកសាររបស់អ្នកនៅក្នុងប័ណ្ណសារងាយស្រួលណាមួយ។
ជំហានទី 3. ដំឡើងជាកម្មវិធីជំនួយធម្មតា។
ផ្នែកដែលងាយស្រួលបំផុត។ គ្រាន់តែចូលទៅកាន់អ្នកគ្រប់គ្រង WordPress របស់អ្នកនៅ កម្មវិធីជំនួយ → បន្ថែមថ្មី។ហើយបង្ហោះប័ណ្ណសាររបស់អ្នកជាកម្មវិធីជំនួយធម្មតា។
នៅពេលដែលអ្នកបើកដំណើរការវា អ្នកគួរតែអាចឃើញកម្មវិធីជំនួយថ្មីរបស់អ្នកនៅក្នុងបញ្ជីនៃកម្មវិធីជំនួយដែលបានដំឡើងផ្សេងទៀតទាំងអស់៖
របៀបបន្ថែមលេខកូដរបស់អ្នក។
ដើម្បីបន្ថែមអត្ថបទកូដរបស់អ្នក គ្រាន់តែបិទភ្ជាប់វាទៅក្នុងឯកសារ .php ដែលអ្នកបានបង្កើត។ ឬអ្នកតែងតែអាចបង្កើតកម្មវិធីជំនួយដាច់ដោយឡែកមួយផ្សេងទៀតសម្រាប់មុខងារពីរផ្សេងគ្នា។
ឧទាហរណ៍ នេះជាអ្វីដែលឯកសារ .php របស់អ្នកនឹងមើលទៅដូចជាប្រសិនបើអ្នកចង់បង្កើត "Hello World!" Shortcode៖
មតិយោបល់ទាំងនេះមិនប៉ះពាល់ដល់ដំណើរការនៃកូដរបស់អ្នក និងល្បឿននៃការប្រតិបត្តិកម្មវិធីជំនួយនោះទេ។ ប៉ុន្តែជាមួយពួកគេ វានឹងកាន់តែងាយស្រួលសម្រាប់អ្នកក្នុងការរុករក និងចងចាំនូវមុខងារនីមួយៗដែលអ្នកបន្ថែមធ្វើ។
គ្រាន់តែរុំមតិរបស់អ្នកនៅក្នុងវាក្យសម្ព័ន្ធសញ្ញាសញ្ញា និងសញ្ញាផ្កាយ៖ /* មតិយោបល់របស់អ្នក។ */
បន្ទាប់ពីធ្វើការផ្លាស់ប្តូរកូដរបស់អ្នក អ្នកអាចផ្ទុកឯកសារ .php ឡើងវិញតាមរយៈ FTP ឬគ្រាន់តែបង្កើតប័ណ្ណសារ .zip ថ្មី ហើយបង្ហោះជាកម្មវិធីជំនួយថ្មី ហើយលុបឯកសារចាស់។
វិធីផ្សេងទៀតដើម្បីជៀសវាងការកែសម្រួល functions.php
ជាទូទៅ ប្រសិនបើអ្នកមានទំនុកចិត្តគ្រប់គ្រាន់ក្នុងសមត្ថភាពរបស់អ្នក និងដឹងពីរបៀបបន្ថែមកូដទៅ functions.php អ្នកមិនគួរមានការលំបាកជាមួយកម្មវិធីជំនួយផ្ទាល់ខ្លួនទេ។ មិនមានអ្វីពិបាកនៅទីនេះទេ។
ប៉ុន្តែយើងយល់យ៉ាងល្អឥតខ្ចោះប្រសិនបើអ្នកមិនមានបំណងចង់ tinker ជាមួយទាំងអស់នេះដោយដៃ។ ទោះយ៉ាងណានេះគឺជា WordPress ។ ដូច្នេះ កម្មវិធីជំនួយ Code Snippets ឥតគិតថ្លៃអាចមានប្រយោជន៍ ដែលធ្វើឱ្យវាងាយស្រួលក្នុងការបញ្ចូលកូដបន្ថែមរបស់អ្នកទៅគេហទំព័រ៖
ជាមួយនឹងកម្មវិធីជំនួយនេះ អ្នកអាចបន្ថែមអត្ថបទកូដផ្សេងៗ ផ្តល់ឱ្យពួកគេនូវឈ្មោះ ការពិពណ៌នា ធ្វើឱ្យសកម្ម និងធ្វើឱ្យកូដមួយឬបំណែកផ្សេងទៀតអសកម្មដោយជ្រើសរើស។
លក្ខណៈពិសេសល្អមួយទៀតគឺថាអ្នកអាចនាំចូល / នាំចេញលេខកូដរបស់អ្នករវាងគេហទំព័រ។
លទ្ធផល
វាអាចហាក់ដូចជាព័ត៌មានលម្អិតតិចតួច ប៉ុន្តែការដាក់ត្រឹមត្រូវនៃកូដបន្ថែមរបស់អ្នកនឹងអនុញ្ញាតឱ្យអ្នកងាយស្រួលប្តូររវាងរូបរាងផ្សេងទៀតនាពេលអនាគត។ អ្នកក៏អាចបើក ឬបិទមុខងារមួយ ឬមុខងារផ្សេងទៀតដាច់ដោយឡែក ប្រសិនបើអ្នកបំបែកមុខងារបន្ថែមនីមួយៗរវាងកម្មវិធីជំនួយដាច់ដោយឡែក។
ដូច្នេះវិធីសាស្រ្តនេះពិតជាសមនឹងទទួលបានការយកចិត្តទុកដាក់។
cms mysql (4)
ខ្ញុំកំពុងព្យាយាមបង្កើតប្រព័ន្ធកម្មវិធីជំនួយមូលដ្ឋានស្រដៀងនឹងកម្មវិធីដែលអ្នកឧស្សាហ៍រកឃើញក្នុង CMS ដូចជា WordPress។ អ្នកមានថតកម្មវិធីជំនួយដែលត្រូវបានភ្ជាប់ទៅនឹងប្រតិបត្តិការប្រព័ន្ធសំខាន់ដោយប្រើការជូនដំណឹងអំពី ការអភិវឌ្ឍចាប់តាំងពីដោយប្រើលំនាំរចនា អ្នកសង្កេតការណ៍ឬ ព្រឹត្តិការណ៍ .
បញ្ហាគឺថាប្រព័ន្ធមិនអាចដឹងជាមួយ ព្រឹត្តិការណ៍អ្វីកម្មវិធីជំនួយចង់ធ្វើសកម្មភាព - ដូច្នេះប្រព័ន្ធត្រូវផ្ទុករាល់កម្មវិធីជំនួយសម្រាប់រាល់សំណើទំព័រ ដើម្បីមើលថាតើកម្មវិធីជំនួយនោះពិតជាត្រូវការនៅចំណុចណាមួយឬអត់។ មិនចាំបាច់និយាយទេ នេះគឺជាធនធានដែលខ្ជះខ្ជាយច្រើន - ក្នុងករណី WordPress ដែលបន្ថែមអង្គចងចាំមួយចំនួនបន្ថែមទៀតសម្រាប់សំណើនីមួយៗ!
តើមានវិធីជំនួសដើម្បីធ្វើវាទេ?
ឧទាហរណ៍ តើមានវិធីដើម្បីផ្ទុករឿងទាំងមូលម្តងហើយបន្ទាប់មកទុកលទ្ធផលដើម្បីឱ្យប្រព័ន្ធរបស់អ្នកដឹងដូចជាខ្ជិលផ្ទុកកម្មវិធីជំនួយដែរឬទេ? ម្យ៉ាងវិញទៀត តើប្រព័ន្ធផ្ទុកឯកសារកំណត់រចនាសម្ព័ន្ធដែលរាយបញ្ជីព្រឹត្តិការណ៍ទាំងអស់ដែលកម្មវិធីជំនួយចង់ចង ហើយបន្ទាប់មករក្សាទុកពួកវាក្នុង APC ឬអ្វីមួយសម្រាប់សំណើនាពេលអនាគត?
ប្រសិនបើវាមិនដំណើរការដូចគ្នាទេ នោះប្រហែលជាមានរចនាសម្ព័ន្ធឯកសារពិសេសដែលអាចត្រូវបានប្រើដើម្បីបង្កើតការទស្សន៍ទាយដែលមានការអប់រំអំពីពេលដែលកម្មវិធីជំនួយមួយចំនួនមិនត្រូវការដើម្បីបំពេញសំណើ។
ចម្លើយ
ខ្ញុំមានឧបករណ៍គ្រប់គ្រងកម្មវិធីជំនួយ ប៉ុន្តែខ្ញុំប្រើវាតែជាមួយកម្មវិធីជំនួយតាមនីតិវិធីប៉ុណ្ណោះ ហើយជាមួយនឹងការរួមបញ្ចូលទាំងអស់ ជាធម្មតាវាផ្ទុកភ្លាមៗ។ ប៉ុន្តែសម្រាប់ព្រឹត្តិការណ៍ដែលមានមូលដ្ឋានលើ API និងការផ្ទុកខ្ជិល ខ្ញុំអាចស្រមៃថាការប្រើរុំរាក់ដើម្បីគ្រប់គ្រងកម្មវិធីជំនួយ និងងាកទៅរកការផ្ទុកដោយស្វ័យប្រវត្តិសម្រាប់ផ្នែកបន្ថែមពិតប្រាកដ។
php / ** * api: whatever * version: 0.1 * title: plugin example * description: ... * config: * អាស្រ័យ៖ កម្មវិធីជំនួយផ្សេងទៀត * /$plugins[ "title_event"] = "TitleEventClass"; $plugins["secondary"] = array("Class2", "callback"); ?>សម្រាប់ឧទាហរណ៍នេះ ខ្ញុំសន្មត់ថា plugin API គឺជាបញ្ជីសាមញ្ញ។ ឧទាហរណ៍នេះ script feature-plugin-123.php មិនធ្វើអ្វីក្រៅពីបន្ថែមវាទៅអារេដែលកំពុងផ្ទុក។ វិធីនេះ ទោះបីជាអ្នកមានកម្មវិធីជំនួយមុខងាររាប់សិបក៏ដោយ វានឹងផ្តល់លទ្ធផលតែរួមបញ្ចូល_ម្តងប៉ុណ្ណោះសម្រាប់នីមួយៗ។
ប៉ុន្តែកម្មវិធីចម្បង / ឬ Plugin API អាចជំនួសវិញបានភ្លាមៗនូវថ្នាក់ដែលបានរៀបរាប់ (ទាំង $ eventcb ថ្មី; សម្រាប់ raw-call_user_func_array ឬ call_user_func_array សម្រាប់ callbacks)។ នៅក្នុងវេន វានឹងផ្ទុកភារកិច្ចជាក់ស្តែងទៅកម្មវិធីផ្ទុកស្វ័យប្រវត្តិ។ ដូច្នេះអ្នកមានប្រព័ន្ធពីរដែលផ្នែកមួយគ្រប់គ្រងបញ្ជី មួយទៀតគឺជាកូដពិតប្រាកដ។
ដូច្នេះខ្ញុំនៅតែស្រមៃមើល config.php សាមញ្ញដែលគ្រាន់តែរាយបញ្ជីកម្មវិធីជំនួយ និងការកំណត់ដូចនេះ៖
php include_once ("user/feature-plugin-123.php" ); include_once ("user/otherplugin2.php" ); include_once ("អ្នកប្រើប្រាស់ / wrapper-for-htmlpurifier.php"); $cfg ["ស្អាត"] = 1;ជាថ្មីម្តងទៀតដោយពិចារណាថាទាំងនេះគ្រាន់តែជាកញ្ចប់ទិន្នន័យ / ស្គ្រីបជាមួយនឹងការពិពណ៌នាអំពីកម្មវិធីជំនួយសម្រាប់ការគ្រប់គ្រង។ អ្នកក៏អាចប្រើ register_even () API ពិតប្រាកដ និងកំណត់មុខងាររុំបន្ថែមក្នុងនីមួយៗ។ ប៉ុន្តែបញ្ជីឈ្មោះត្រជាក់ហាក់ដូចជាជម្រើសងាយស្រួលបំផុត។
ឧបករណ៍គ្រប់គ្រងខាងលើមើលទៅច្រេះ និងអាក្រក់៖ http://milki.include-once.org/genericplugins/
ប៉ុន្តែវាមិនត្រូវបានប្រើទេ ប្រសិនបើអ្នកគ្រាន់តែចង់បានបញ្ជី (តារាង sql) និងគ្រប់គ្រងការកំណត់។ ការចំណាយលើសនេះគឺសម្រាប់តែការបោះពុម្ពទិន្នន័យមេតារបស់កម្មវិធីជំនួយយ៉ាងស្អាត និងរក្សា config.php ដែលអាចអានបាន។
ទីបំផុត៖
spl_autoload () to include_path and simple case event-> classname, one wrapper script នីមួយៗ គ្រាន់តែរួមបញ្ចូលទាំងអស់ក្នុងពេលតែមួយ។
ខ្ញុំនឹងរក្សាទុកឈ្មោះថ្នាក់កម្មវិធីជំនួយ រួមជាមួយនឹងព្រឹត្តិការណ៍ដែលបានចុះហត្ថលេខារបស់វានៅក្នុងឯកសារកំណត់រចនាសម្ព័ន្ធ ហើយបន្ទាប់មករក្សាទុកឯកសារកំណត់រចនាសម្ព័ន្ធដែលបានញែកទៅ APC ឧទាហរណ៍។ បន្ទាប់មក នៅពេលដែលព្រឹត្តិការណ៍ផ្ទុះឡើង ប្រព័ន្ធអាចខ្ជិលផ្ទុកថ្នាក់កម្មវិធីជំនួយសមស្របតាមតម្រូវការ។
Wordpress និងប្រព័ន្ធ CMS ផ្សេងទៀតគឺជាឧទាហរណ៍អាក្រក់ណាស់។
យើងត្រូវយល់ថាម៉ូឌុលស្ទើរតែតែងតែមានន័យថាវាធ្ងន់ជាង។
គ្រោងការណ៍ដ៏ល្អបំផុតដែលខ្ញុំធ្លាប់បានធ្វើការជាមួយដើម្បីដោះស្រាយស្ថានភាពនេះគឺកម្មវិធីជំនួយដែលមានមូលដ្ឋានលើថ្នាក់ ដោយមានអនុសញ្ញាដាក់ឈ្មោះយ៉ាងតឹងរឹង ដោយប្រើកម្មវិធីផ្ទុកស្វ័យប្រវត្តិ។
ដូចនេះ អ្នកត្រូវធ្វើភ្លាមៗ ឬប្រើមុខងារឋិតិវន្ត មុនពេលប្រើកម្មវិធីជំនួយ។
អ្នកក៏អាចហៅកម្មវិធីជំនួយ៖
php $thePlugin :: method (); ?>ឧទាហរណ៍:
php spl_autoload_register ("systemAutoload" ); function systemAutoload ($class ) { $parts = explode ("_" , $class ); switch ($parts [ 1 ]) { case "Plugin" : include ("/plugins/($parts)/($parts.php"); សម្រាក; )//...)?>ចំពោះព្រឹត្តិការណ៍៖
អ្នកត្រូវតែចុះឈ្មោះព្រឹត្តិការណ៍នេះដោយស្ថិរភាព ដើម្បីជៀសវាងការផ្លាស់ប្តូរថាមវន្ត។
មូលដ្ឋានទិន្នន័យនឹងជាកន្លែងដែលត្រឹមត្រូវសម្រាប់ការនេះ។ អ្នកអាចមានតារាងព្រឹត្តិការណ៍ ហើយដំឡើង () និងលុប () វិធីសាស្ត្រក្នុងថ្នាក់កម្មវិធីជំនួយ ដើម្បីបន្ថែមព្រឹត្តិការណ៍ជាក់លាក់ ឬចងវិធីសាស្ត្រទៅនឹងព្រឹត្តិការណ៍ផ្សេងទៀត។ នេះគឺជាសំណួរមូលដ្ឋានទិន្នន័យមួយ ហើយប្រសិនបើអ្នកចង់បានបន្ថែមពីវាបន្ថែមវាទៅក្នុងឯកសារ memcached ឬ flat ini ។
ដំណើរការល្អសម្រាប់ខ្ញុំ។ វិធីនេះខ្ញុំអាចទទួលបានប្រព័ន្ធធ្ងន់ដែលប្រើប្រាស់ 8MB ក្នុងមួយសំណើដើម្បីទម្លាក់មកត្រឹម 1MB ជាមួយនឹងបញ្ជីលក្ខណៈពិសេសដូចគ្នា មិនមានឃ្លាំងសម្ងាត់ជាមុនទេ។ ឥឡូវនេះយើងអាចបន្ថែមមុខងារបន្ថែមទៀត និងរក្សាប្រព័ន្ធ "ស្អាត"
សង្ឃឹមថាវាអាចជួយបាន។
វិធីល្អបំផុតគឺចាប់ផ្តើមសរសេរកូដជាមួយពួកគេ។ គំរូរចនាគឺជាគំនិតដ៏អស្ចារ្យដែលពិបាកអនុវត្តដោយគ្រាន់តែអានអំពីពួកវា។ យកឧទាហរណ៍មួយចំនួនដែលអ្នករកឃើញនៅលើអ៊ីនធឺណិត ហើយបង្កើតជុំវិញពួកវា។
ធនធានដ៏អស្ចារ្យគឺទំព័រទិន្នន័យ និងវត្ថុ។ ពួកគេឆ្លងកាត់គំរូ និងផ្តល់ឱ្យអ្នកនូវឧទាហរណ៍ទាំងគំនិត និងពិភពពិត។ ឯកសារយោងរបស់ពួកគេក៏អស្ចារ្យដែរ។
នេះគឺជាឯកសារចម្បងនៅក្នុងប្រធានបទ WordPress របស់អ្នក។ មានទីតាំងនៅ / wp-content / themes / (នេះគឺជាឈ្មោះនៃប្រធានបទរបស់អ្នក) /functions.php ។
វាកំណត់លក្ខណៈសម្បត្តិសំខាន់ៗនៃរូបរាង កំណត់ទំពក់ រូបរាង និងមុខងារតាមបំណង ហើយថែមទាំងបន្ថែមមុខងារមួយចំនួនដែលអ្នកត្រូវការផងដែរ។ ឯកសារនេះត្រូវបានផ្ទុករាល់ពេលដែលអ្នកបើកទំព័រ WordPress ណាមួយ ដូច្នេះវាអាចត្រូវបានប្រើដើម្បីកែប្រែធាតុណាមួយនៃគេហទំព័រ។ ក្នុងន័យនេះ គន្លឹះជាច្រើន a la " របៀបផ្លាស់ប្តូរអ្វីមួយនៅក្នុង WordPress ដោយគ្មានកម្មវិធីជំនួយ
» ជាញឹកញយមានការព្រួយបារម្ភចំពោះការផ្លាស់ប្តូរទៅ functions.php ជំនួសឱ្យការបង្កើតកម្មវិធីជំនួយដាច់ដោយឡែកសម្រាប់មុខងារនេះ ឬប្រើដំណោះស្រាយដែលត្រៀមរួចជាស្រេច។ វាច្រើនតែនាំឱ្យឯកសារនេះផ្ទុកលើសទម្ងន់ ធ្វើឱ្យកូដពិបាកក្នុងការញែក ហើយធ្វើឱ្យការកែតម្រូវកាន់តែពិបាក។ ប៉ុន្តែនេះមិនមែនជារឿងគ្រោះថ្នាក់បំផុតនោះទេ។ អ្វីដែលគ្រោះថ្នាក់បំផុតនោះគឺ នៅពេលផ្លាស់ប្តូរប្រធានបទសកម្ម មុខងារចាំបាច់មួយចំនួននៃគេហទំព័រនឹងត្រូវបាត់បង់.
របៀបដែល functions.php ខុសពីកម្មវិធីជំនួយ
គ្មានអ្វីទេ។ នៅស្នូលរបស់វា functions.php គឺជាប្រភេទនៃកម្មវិធីជំនួយដែលមិនអាចប្តូរបានសកលដែលត្រូវបានចងភ្ជាប់ទៅនឹងប្រធានបទបច្ចុប្បន្ន។ អ្នកអាចមើលពីរបៀបដែលវាភ្ជាប់នៅក្នុង WordPress ក្នុង wp-settings.php ។ ដូចដែលអ្នកអាចមើលឃើញពីកូដប្រភព វាត្រូវបានផ្ទុកបន្ទាប់ពីកម្មវិធីជំនួយទាំងអស់ ទោះជាយ៉ាងណាក៏ដោយ វាមិនផ្តល់គុណវិបត្តិ ឬគុណសម្បត្តិណាមួយឡើយ លើកលែងតែសមត្ថភាពក្នុងការបដិសេធអ្វីមួយនៅក្នុងកម្មវិធីជំនួយដែលបានភ្ជាប់។ វានឹងមិនប៉ះពាល់ដល់ល្បឿននៃការប្រតិបត្តិកូដផងដែរ។ មានតែខ្លឹមសារនៃកម្មវិធីជំនួយ និង functions.php ប៉ុណ្ណោះដែលត្រូវបានប៉ះពាល់។ ដូច្នេះ សូមប្រយ័ត្នពេលជ្រើសរើសកម្មវិធីជំនួយសកម្មសម្រាប់ស្បែករបស់អ្នក ហើយបោះបង់ចោលនូវអ្វីដែលមិនចាំបាច់ ប្រើប្រាស់តិចតួចសម្រាប់អ្នក បន្ទាប់មកអ្នកអាចបំភ្លឺគេហទំព័ររបស់អ្នក និងបង្កើនល្បឿនការងាររបស់វា។
ពេលណាត្រូវប្រើ functions.php
ត្រូវបានណែនាំដោយច្បាប់ខាងក្រោម៖ ប្រសិនបើមុខងារទាក់ទងផ្ទាល់នឹងប្រធានបទបច្ចុប្បន្ន ប៉ុន្តែមិនមែនចំពោះប្រតិបត្តិការរបស់គេហទំព័រទេ សូមសរសេរវាក្នុង functions.php ។
ឧទាហរណ៍វាអាចជា
- ការដំឡើងរូបភាពតូច
- ការកំណត់ទំហំរបារចំហៀង
- រៀបចំកន្លែងសម្រាប់ធាតុក្រាហ្វិក
- ការប្រកាសអំពីទីកន្លែងនៅក្រោមម៉ឺនុយរុករក
- ការកំណត់ប្រធានបទ
- មុខងារបន្ថែមនៃប្រធានបទរបស់អ្នក។
ពេលណាត្រូវជៀសវាងការប្រើ functions.php
ប្រសិនបើមុខងារគួរតែដំណើរការសូម្បីតែនៅពេលផ្លាស់ប្តូរស្បែកសកម្មក៏ដោយ អ្នកគួរតែយកចិត្តទុកដាក់ក្នុងការដាក់វាចូលទៅក្នុងកម្មវិធីជំនួយដាច់ដោយឡែក។
ទាំងនេះរួមបញ្ចូលទាំង:
- និយមន័យនៃការរាប់វត្តមាន (Google Analytics, Yandex.Metrika, Liveinternet)
- ការដំឡើងមុខងារបន្ថែមនៃបន្ទះគ្រប់គ្រង (ឧទាហរណ៍)
- កំណត់រចនាសម្ព័ន្ធកូដប្រភព ()
- ការកំណត់កូដខ្លីៗ
- ការចុះឈ្មោះ
បញ្ជីមិនពេញលេញទេ អ្នកអាចកំណត់ខ្លឹមសាររបស់វាដោយខ្លួនឯងបាន។
តើខ្ញុំអាចបន្ថែមកូដនេះនៅកន្លែងណា ប្រសិនបើមិនមាននៅក្នុង functions.php? អ្នកអាចសរសេរកម្មវិធីជំនួយពិសេសសម្រាប់ពួកគេ ទោះយ៉ាងណាក៏ដោយ មានវិធីគួរឱ្យចាប់អារម្មណ៍ និងសាមញ្ញជាង។
mu-plugins ជាជម្រើសមួយសម្រាប់ functions.php
មុខងារគួរឱ្យចាប់អារម្មណ៍មួយបានមកដល់យើងនៅក្នុងកំណែទំនើបនៃ WordPress ពី WordPress MU (Multi-User) ដែលហៅថា កម្មវិធីជំនួយ MU... ខ្លឹមសាររបស់វាមានដូចខាងក្រោម។ ពេលខ្លះអ្នកគ្រប់គ្រង WordPress MU ត្រូវការដើម្បីកំណត់កម្មវិធីជំនួយសម្រាប់បណ្តាញទាំងមូលនៃគេហទំព័រ។ វាមិនអាចទៅរួចទេជាមួយនឹងមុខងារធម្មតា ដូច្នេះផ្នែកពិសេសមួយត្រូវបានណែនាំ៖ / wp-content / mu-plugins / ដែលពួកគេត្រូវបានកំណត់។ អ្វីដែលគួរឱ្យចាប់អារម្មណ៍មួយទៀតគឺថាឯកសារកម្មវិធីជំនួយពីថតនេះត្រូវបានផ្ទុកមុនអ្នកផ្សេងទៀតទាំងអស់ដែលធ្វើឱ្យវាអាចកំណត់ជាមុនចំនួនថេរឬការកំណត់មួយចំនួន។
ក្រោយមក WPMU ត្រូវបានលុបចោល កូដរបស់វាត្រូវបានរួមបញ្ចូលជាមួយនឹងការសរសេរប្លុកសំខាន់ៗ ហើយឥឡូវនេះ WordPress ណាមួយអាចប្រើមុខងាររបស់ MU-plugins ដែលឥឡូវនេះតំណាងឱ្យ ត្រូវតែប្រើនោះគឺចាំបាច់សម្រាប់ការប្រើប្រាស់។
របៀបប្រើកម្មវិធីជំនួយ mu-plugins
ដំបូងអ្នកត្រូវបង្កើតផ្នែកពិសេស / wp-content / mu-plugins /
យើងដាក់ឯកសារជំនួយចាំបាច់ទៅក្នុងវា។ មិនដូចកម្មវិធីជំនួយធម្មតាទេ មិនចាំបាច់ប្រកាន់ខ្ជាប់នូវវាក្យសម្ព័ន្ធពិសេសទេ ហើយមុខងារអាចត្រូវបានប្រកាសដោយផ្ទាល់។
ជាឧទាហរណ៍ នៅទីនេះ ឯកសារដែលមានលេខកូដនៃបញ្ជរវត្តមានត្រូវបានបង្កើត។
នៅខាងក្នុងឯកសារនេះមើលទៅដូចនេះ
// ... ជំនួសឱ្យបន្ទាត់នេះ បញ្ចូលលេខកូដបញ្ជរ...
នៅក្នុងតំបន់គ្រប់គ្រងវានឹងមើលទៅ ចាំបាច់
8 ចម្លើយ
អ្នកអាចប្រើគំរូអ្នកសង្កេតការណ៍។ វិធីសាមញ្ញដែលមានមុខងារដើម្បីសម្រេចវា៖
លទ្ធផល៖
នេះគឺជាកម្មវិធី CRAZY របស់ខ្ញុំ 4 + 5 = 9 4 * 5 = 20
កំណត់ចំណាំ៖
នៅក្នុងកូដប្រភពឧទាហរណ៍នេះ អ្នកត្រូវតែប្រកាសកម្មវិធីជំនួយរបស់អ្នកទាំងអស់ មុនពេលកូដប្រភពពិតប្រាកដដែលអ្នកចង់បន្ត។ ខ្ញុំបានរួមបញ្ចូលឧទាហរណ៍មួយអំពីរបៀបដោះស្រាយតម្លៃមួយ ឬច្រើនដែលបានបញ្ជូនទៅកម្មវិធីជំនួយ។ ផ្នែកដែលពិបាកបំផុតគឺការសរសេរឯកសារពិតប្រាកដដែលរាយអាគុយម៉ង់ណាមួយដែលត្រូវបញ្ជូនទៅទំពក់នីមួយៗ។
នេះគ្រាន់តែជាវិធីមួយដើម្បីបង្កើតប្រព័ន្ធកម្មវិធីជំនួយក្នុង PHP ។ មានជម្រើសប្រសើរជាងនេះ ខ្ញុំស្នើឱ្យអ្នកពិនិត្យមើលឯកសារ WordPress សម្រាប់ព័ត៌មានបន្ថែម។
សូមអភ័យទោស វាហាក់ដូចជាសញ្ញាគូសត្រូវបានជំនួសដោយធាតុ HTML Markdown? ខ្ញុំអាចបង្ហោះកូដនេះឡើងវិញ នៅពេលដែលបញ្ហានេះត្រូវបានជួសជុល។
កែសម្រួល៖ មិនខ្វល់ទេ វាបង្ហាញតែពេលអ្នកកែសម្រួលប៉ុណ្ណោះ។
ដូច្នេះឧបមាថាអ្នកមិនត្រូវការគំរូ Observer ទេ ព្រោះវាតម្រូវឱ្យអ្នកផ្លាស់ប្តូរវិធីសាស្រ្តនៃថ្នាក់ដើម្បីដោះស្រាយកិច្ចការស្តាប់ ហើយអ្នកចង់បានអ្វីមួយដូចគ្នា។ ហើយឧបមាថាអ្នកមិនចង់ប្រើការបន្តមរតកទេព្រោះអ្នកអាចទទួលមរតកថ្នាក់របស់អ្នករួចហើយពីថ្នាក់ផ្សេងទៀតមួយចំនួន។ តើវាមិនមែនជាការល្អទេក្នុងការមានវិធីទូទៅក្នុងការធ្វើឱ្យថ្នាក់ណាមួយអាចដោតបានដោយមិនចាំបាច់នោះ? នេះជារបៀប៖
_Class = get_class (&$ RefObject); $ this --> _ RefObject = $ RefObject; ) មុខងារសាធារណៈ __set ($sProperty, $mixed) ($sPlugin = $ this --> _ Class. "_". $sProperty. "_setEvent"; if (is_callable ($sPlugin)) ($ mixed = call_user_func_array ($sPlugin, $ mixed);) $ this --> _ RefObject --> $sProperty = $ mixed;) មុខងារសាធារណៈ __get ($sProperty) ($asItems = (array) $ this --> _ RefObject; $ mixed = $ asItems [$sProperty] ; $sPlugin = $ this --> _ Class. "_". $sProperty. "_getEvent"; if (is_callable ($sPlugin)) ($ mixed = call_user_func_array ($sPlugin, $ mixed);) ត្រឡប់ $ mixed;) public មុខងារ __call ($sMethod, $ mixed) ($sPlugin = $ this --> _ Class. "_". $sMethod. "_beforeEvent"; if (is_callable ($sPlugin)) ($ mixed = call_user_func_array ($sPlugin, $ mixed );) ប្រសិនបើ ( $mix! = "BLOCK_EVENT") (call_user_func_array (array (&$ this --> _ RefObject, $sMethod), $ mixed); $sPlugin = $ this --> _ Class ។ "_". $sMethod . "_afterEvent"; if ( is_callable ($sPlugin)) (call_user_func_array ($sPlugin, $mixed);)))) // end class Plugin class Pluggable extends Plugin () // end class Pl uggable /////////////////////// PART 2 ////////////////// class Dog (សាធារណៈ $ Name= ""; មុខងារសាធារណៈ bark (&$sHow) (បន្ទរ "$sHow
\n ";) មុខងារសាធារណៈ sayName () (បន្ទរ"
\nMy Name is: ".$ this-> Name."
\n" ;)) // end class Dog $ Dog = new Dog (); ////////////////// // PART 3 /////// // //////////// $PDog = new Pluggable ($ Dog); function Dog_bark_beforeEvent (&$ mixed) ($ mixed = "Woof"; // Override say "meow" ជាមួយ "Woof" // $ mixed = "BLOCK_EVENT"; // ប្រសិនបើអ្នកចង់ទប់ស្កាត់ព្រឹត្តិការណ៍ត្រឡប់ $ លាយ;) មុខងារ Dog_bark_afterEvent (& $ លាយ) (អេកូ $ លាយ; // បង្ហាញការបដិសេធ) មុខងារ Dog_Name_setEvent (& $ លាយ) ($ លាយ = " Coco"; // override "Fido" ជាមួយ "Coco" return $mixed;) function Dog_Name_getEvent (&$ mixed) ($ mixed = "Different"; // override "Coco" with "Different" return $ mixed;) // ///////////////////// PART 4 /////////////////////////////$PDog-> Name="Fido "; $PDog-> Bark ("meow"); $PDog-> SayName (); echo "My New Name is:" $PDog-> Name;
ផ្នែកទី 1 គឺជាអ្វីដែលអ្នកអាចរួមបញ្ចូលជាមួយការហៅតាម require_once () នៅផ្នែកខាងលើនៃអក្សរ PHP របស់អ្នក។ វាផ្ទុកថ្នាក់ដើម្បីធ្វើឱ្យអ្វីមួយដែលអាចដោតបាន។
នៅក្នុងផ្នែកទី 2 ដែលជាកន្លែងដែលយើងផ្ទុកថ្នាក់។ ចំណាំ។ ខ្ញុំមិនចាំបាច់ធ្វើអ្វីពិសេសសម្រាប់ថ្នាក់ដែលខុសពីគំរូ Observer ទេ។
នៅក្នុងផ្នែកទី 3 ដែលយើងនឹងប្តូរ class របស់យើងទៅជា "pluggable" (ឧ. រក្សា plugins ដែលអនុញ្ញាតឱ្យយើងបដិសេធ method និង properties នៃ class)។ ដូច្នេះ ជាឧទាហរណ៍ ប្រសិនបើអ្នកមានកម្មវិធីបណ្តាញ អ្នកអាចមានបញ្ជីឈ្មោះកម្មវិធីជំនួយ ហើយអ្នកអាចធ្វើឱ្យកម្មវិធីជំនួយនៅទីនេះសកម្ម។ ចំណាំផងដែរនូវមុខងារ Dog_bark_beforeEvent () ។ ប្រសិនបើខ្ញុំកំណត់ $mixed = "BLOCK_EVENT" មុនពេលសេចក្តីថ្លែងការត្រឡប់មកវិញ វានឹងរារាំងឆ្កែមិនឱ្យព្រុស ហើយនឹងរារាំង Dog_bark_afterEvent ផងដែរ ព្រោះវានឹងមិនមានព្រឹត្តិការណ៍។
នៅក្នុងផ្នែកទី 4 នោះគឺជា opcode ធម្មតា ប៉ុន្តែចំណាំថាអ្វីដែលអ្នកប្រហែលជាគិតថានឹងមិនដំណើរការដូចនេះទេ។ ជាឧទាហរណ៍ សត្វឆ្កែមួយក្បាលមិនបញ្ចេញឈ្មោះគាត់តាមឈ្មោះ "Fido" ប៉ុន្តែ "Coco"។ ឆ្កែមិននិយាយថា meow ទេ ប៉ុន្តែអូហូ។ ហើយនៅពេលដែលអ្នកចង់មើលឈ្មោះរបស់ឆ្កែនៅពេលក្រោយ អ្នកនឹងឃើញថាវាជា "Miscellaneous" មិនមែន "Coco" ទេ។ ការបដិសេធទាំងអស់នេះត្រូវបានណែនាំនៅក្នុងផ្នែកទី 3 ។
ដូច្នេះតើវាដំណើរការយ៉ាងដូចម្តេច? ជាការប្រសើរណាស់, អនុញ្ញាតឱ្យចេញ eval () (ដែលមនុស្សគ្រប់គ្នានិយាយថា "អាក្រក់") ហើយបដិសេធវាមិនមែនជាគំរូអ្នកសង្កេតការណ៍។ ដូច្នេះវិធីដែលវាដំណើរការគឺជាមួយនឹងថ្នាក់ទទេដែលលាក់ដែលហៅថា Pluggable ដែលមិនមានវិធីសាស្រ្ត និងលក្ខណៈសម្បត្តិដែលប្រើដោយ Dog class។ ដូច្នេះនៅពេលដែលវាកើតឡើង វិធីសាស្ត្រវេទមន្តនឹងត្រូវបានប្រើប្រាស់សម្រាប់យើង។ ដូច្នេះនៅក្នុងផ្នែកទី 3 និងទី 4 យើងកំពុងភ្ជាប់ទៅវត្ថុដែលបានមកពីថ្នាក់ Pluggable ហើយមិនមែនទៅថ្នាក់ Dog នោះទេ។ ជំនួសមកវិញ យើងអនុញ្ញាតឱ្យថ្នាក់កម្មវិធីជំនួយ "ប៉ះ" វត្ថុឆ្កែសម្រាប់យើង។ (ប្រសិនបើនេះជាការរចនាខ្លះដែលខ្ញុំមិនដឹង សូមប្រាប់ខ្ញុំផង។)
វិធីសាស្រ្ត hook and listener គឺត្រូវបានប្រើប្រាស់ជាទូទៅបំផុត ប៉ុន្តែមានរឿងផ្សេងទៀតដែលអ្នកអាចធ្វើបាន។ អាស្រ័យលើទំហំនៃកម្មវិធីរបស់អ្នក និងអ្នកដែលចង់ឃើញកូដ (វានឹងជាស្គ្រីប FOSS ឬអ្វីក៏ដោយនៅក្នុងផ្ទះ) នឹងប៉ះពាល់យ៉ាងខ្លាំងពីរបៀបដែលអ្នកចង់ដោះស្រាយកម្មវិធីជំនួយ។
kdeloach មានឧទាហរណ៍ដ៏ល្អមួយ ប៉ុន្តែការអនុវត្ត និងមុខងារទំពក់របស់វាមានសុវត្ថិភាពបន្តិច។ ខ្ញុំនឹងសួរអ្នកសម្រាប់ព័ត៌មានបន្ថែមអំពីលក្ខណៈនៃកម្មវិធី php សម្រាប់សំបុត្ររបស់អ្នក និងរបៀបដែលអ្នកឃើញកម្មវិធីជំនួយ។
1 ទៅ kdeloach ពីខ្ញុំ។
នេះជាវិធីសាស្រ្តដែលខ្ញុំបានប្រើ វាកំពុងព្យាយាមចម្លងពីយន្តការ Qt signal/slot ដែលជាប្រភេទនៃគំរូ Observer។ វត្ថុអាចបញ្ចេញសញ្ញា។ សញ្ញានីមួយៗមានឧបករណ៍កំណត់អត្តសញ្ញាណនៅក្នុងប្រព័ន្ធ - វាមានលេខសម្គាល់ + នៃវត្ថុអ្នកផ្ញើ សញ្ញានីមួយៗអាចត្រូវបានចងភ្ជាប់ទៅនឹងអ្នកទទួល ដែលគ្រាន់តែជា "អាចហៅបាន" អ្នកអាចប្រើថ្នាក់ឡានក្រុងដើម្បីផ្ញើសញ្ញាទៅនរណាម្នាក់ដែលចាប់អារម្មណ៍ក្នុងការទទួលវានៅពេល មានអ្វីមួយកើតឡើង អ្នកកំពុងបញ្ជូនសញ្ញា។ ខាងក្រោមនេះជាឧទាហរណ៍ និងការអនុវត្តជាក់ស្តែង
ចូល (); ?>
ខ្ញុំរកវិធីងាយស្រួលបំផុតគឺធ្វើតាមការណែនាំរបស់ Jeff ហើយពិនិត្យមើលកូដដែលមានស្រាប់។ សាកល្បងមើល Wordpress, Drupal, Joomla និង PHP-CMSs ល្បីៗផ្សេងទៀត ដើម្បីមើលពីរបៀបដែល APIs របស់ពួកគេមើលទៅ និងមានអារម្មណ៍។ វិធីនេះ អ្នកថែមទាំងអាចទទួលបានគំនិតដែលអ្នកប្រហែលជាមិនធ្លាប់គិតពីមុនមក ដើម្បីធ្វើឱ្យរឿងកាន់តែក្រាស់បន្តិច។
ចម្លើយផ្ទាល់បន្ថែមទៀតគឺការសរសេរឯកសារទូទៅដែលពួកវានឹងបញ្ចូលក្នុងឯកសាររួមបញ្ចូល ដើម្បីធានាបាននូវលទ្ធភាពប្រើប្រាស់។ វានឹងត្រូវបានចាត់ថ្នាក់ និងមិនត្រូវបានផ្តល់ឱ្យនៅក្នុងឯកសារ "hooks.php" តែមួយ។ សូមប្រយ័ត្ន ព្រោះអ្វីទៅជាឯកសារដែលពួកគេរួមបញ្ចូលនៅទីបំផុតមានភាពអាស្រ័យ និងមុខងារកាន់តែច្រើន។ ព្យាយាមកំណត់ភាពអាស្រ័យ API ។ I.E ឯកសារតិចជាងមុនដែលត្រូវបញ្ចូល។
មានគម្រោងស្អាតមួយហៅថា
Valle d'Aosta ។ ប្រទេសអ៊ីតាលី។ បើកម៉ឺនុយខាងឆ្វេង Valle d'Aosta Heroes of the Vine
ប្រភេទព្រីភ្លើង និងវ៉ុលជុំវិញពិភពលោក
តើអ្វីជាស្តង់ដារវ៉ុល ប្រេកង់ និងប្រភេទនៃព្រីនៅក្នុងប្រទេសផ្សេងៗគ្នានៃពិភពលោក
របៀបដែលតំបន់គ្មានយោធារវាងកូរ៉េខាងជើង និងកូរ៉េខាងត្បូងបានផ្លាស់ប្តូរ
បិទការធ្វើបច្ចុប្បន្នភាពដោយស្វ័យប្រវត្តិនៅក្នុងវីនដូ