Lazy Load Images - Lazy Load plugins សម្រាប់ WordPress ។ វិធីល្អបំផុតដើម្បីបើកកម្មវិធីជំនួយសម្រាប់កម្មវិធី PHP Sluggish php plugin

  • 20.06.2020

ឯកសារមុខងារគឺជាជំនួយការកម្សាន្តក្នុងការពង្រីកមុខងាររបស់គេហទំព័រ! ជាពិសេសប្រសិនបើប្រើសម្រាប់គោលបំណងដែលបានគ្រោងទុក - ទោះជាយ៉ាងណា ម្ចាស់ប្លក់/គេហទំព័រជាច្រើនគឺអស្ចារ្យណាស់ក្នុងការប្រែក្លាយ functions.php ទៅជា hodgepodge ។

នៅក្នុងអាជីវកម្មណាមួយ មានភាពរហ័សរហួន និងការរឹតបន្តឹង (ការរឹតបន្តឹង ជាញឹកញាប់ឡូជីខល) ហើយដូច្នេះកូដដែលអាចប្រតិបត្តិបានមួយចំនួនដែលត្រូវបានរចនាឡើងដើម្បីកែតម្រូវប៉ារ៉ាម៉ែត្រនៃស្នូល WP (មិនមែនស្បែក) វាជាការត្រឹមត្រូវជាងក្នុងការដកចេញពីគំរូ ...

នៅពេលដែលការសន្ទនានិយាយអំពីការធ្វើទំនើបកម្មមុខងារនៃគេហទំព័រ នៅក្នុងបន្ទាត់នៃអត្ថបទ "ដោយគ្មានកម្មវិធីជំនួយ ... " វាពិតជាត្រូវបានណែនាំឱ្យរុញប្លុកទាំងអស់នៃកូដចូលទៅក្នុង functions.php រឿងព្រេងនិទាន។ មិនត្រឹមត្រូវទេ!

វាសមហេតុផលជាងក្នុងការផ្ទេរផ្នែកបន្ថែមបច្ចេកទេសសុទ្ធសាធទាំងអស់ (មិនទាក់ទងដោយផ្ទាល់ទៅនឹងរចនាប័ទ្មគំរូ) ទៅក្នុងកម្មវិធីជំនួយដែលបានរៀបចំសម្រាប់ការចុះឈ្មោះរបស់ពួកគេ។

តោះបង្កើតវា! ហើយ​ក៏​និយាយ​ពី​គុណសម្បត្តិ និង​គុណវិបត្តិ (ដែល​មាន​តិច​ជាង)...


ផ្នែកនៃអត្ថបទ៖

របៀបបង្កើតកម្មវិធីជំនួយរបស់អ្នក។

ពីអត្ថបទខាងក្រោមយើងនឹងរៀនពីរបៀបបង្កើតកម្មវិធីជំនួយផ្ទាល់ខ្លួនរបស់អ្នកដោយដៃរបស់អ្នកផ្ទាល់: យើងនឹងយល់លម្អិតទាំងអស់ nuances ។ យើង​នឹង​រក​ឃើញ​ថា​តើ​គុណសម្បត្តិ និង​គុណវិបត្តិ​មាន​អ្វីខ្លះ (មាន​គុណវិបត្តិ​តិច​ជាង!! ហើយ​ផ្ទុយទៅវិញ ទាំងនេះ​មិន​មែន​ជា​គុណវិបត្តិ​ទាល់តែសោះ ប៉ុន្តែ​ភាព​ងាយស្រួល​មួយ ឬ​ផ្សេងទៀត​សម្រាប់​អ្នកគ្រប់គ្រង​នីមួយៗ)

តើអ្វីជាភាពខុសគ្នារវាងឯកសារ functions.php និងកម្មវិធីជំនួយ

ហេតុអ្វី​បាន​ជា​កូដ​មួយ​ចំនួន​ដែល​ទាក់ទង​ផ្ទាល់​នឹង​មុខងារ​របស់​គេហទំព័រ​ត្រូវ​បាន​ផ្ទេរ​ទៅ​កម្មវិធី​ជំនួយ​ដោយ​ឡែក?

ឯកសារមុខងារខ្លួនវា គោលបំណង និងភាពស៊ីសង្វាក់គ្នារបស់វាមិនខុសពីកម្មវិធីជំនួយទេ (គ្រាន់តែជាកម្មវិធីជំនួយក្នុងស្បែក))! - ភារកិច្ចចម្បងរបស់វាគឺដើម្បីបង្កើនគំរូជាក់លាក់ (សកម្ម) ជាមួយនឹងមុខងារមានប្រយោជន៍។

ឧទាហរណ៍ "ការរុករក" ដែលជាកន្លែងដែលឡូជីខល ម៉ឺនុយប៊ូតុងត្រូវបានកំណត់រចនាប័ទ្មជាមួយ CSS ស្របតាមរចនាប័ទ្មនៃរចនាប័ទ្មសកម្ម - វាអាចជាការត្រឹមត្រូវជាងក្នុងការទុកវានៅក្នុងឫសនៃគំរូ។

តើអ្វីទៅជាអត្ថប្រយោជន៍ - ដើម្បីបំបែកឯកសារមុខងារទៅជាឯកសារដាច់ដោយឡែកឬកម្មវិធីជំនួយដាច់ដោយឡែក?

ឧទាហរណ៍ កន្លែងសាមញ្ញបំផុត - អ្នកសម្រេចចិត្តផ្លាស់ប្តូរគំរូ!? ... ជាលទ្ធផល ការអភិវឌ្ឍន៍មុខងារទាំងអស់នឹងត្រូវបាត់បង់ ព្រោះកូដដែលមានប្រយោជន៍ទាំងអស់ស្ថិតនៅក្នុងឯកសារមុខងារ (ខ្ញុំធ្លាប់ឃើញទំហំឯកសារបែបនេះ 750KILO)

ជាការពិតណាស់ អ្នកអាចផ្ទេរឯកសារនៃមុខងារទៅប្រធានបទថ្មី ប៉ុន្តែភាគច្រើន បើគ្មានការកែសម្រួលដែលត្រូវការពេលវេលាមានប្រយោជន៍ច្រើនទេ អ្នកមិនអាចធ្វើវាបានទេ៖ ស្វា និងការងារ)

ហើយ​បន្ទាប់​មក:

លំដាប់នៃការផ្ទុកឯកសារគេហទំព័រ

ដោយសង្ខេប៖ លំដាប់នៃការផ្ទុកឯកសារស្នូលនៃគេហទំព័រក្នុងឧទាហរណ៍របស់យើងមានដូចខាងក្រោម - កម្មវិធីជំនួយសកម្មនៃគេហទំព័រ (ពីថតកម្មវិធីជំនួយ) និងមាតិការបស់ពួកគេត្រូវបានផ្ទុកមុនបន្តិច ហើយមានតែឯកសារ functions.php ដែលមានមាតិកាគឺ ដំណើរការ។ វាទាំងអស់គិតជាមិល្លីវិនាទី ហើយវាស្ទើរតែមិនមានតម្លៃក្នុងការនិយាយយ៉ាងខ្លាំងអំពីការបង្កើនល្បឿនទំព័រខ្លួនឯងនោះទេ។

ទោះបីជាវាហាក់បីដូចជាហេតុផលមួយក្នុងចំណោមហេតុផលសម្រាប់ការបញ្ជាទិញបែបនេះដែលបង្កើតឡើងដោយអ្នកអភិវឌ្ឍន៍ ដែលកន្លែងទីពីរត្រូវបានផ្តល់ទៅឱ្យឯកសារមុខងារ (ដូចជា សន្មតធាតុស្រាលជាង) គ្រាន់តែជាការពិតនៃការប្រើប្រាស់កម្មវិធីជំនួយដែលរីករាលដាលជាញឹកញាប់នៃមាតិកាដ៏ធំ ...

នរណាម្នាក់នឹងឧទាន៖ កម្មវិធីជំនួយមួយទៀត ...? ពិបាក!

ហើយខ្ញុំនិយាយថាវានឹងមិនប៉ះពាល់ដល់ល្បឿនណាមួយទេ ... ជាជាង - ផ្ទុយទៅវិញប្រសិនបើអ្នកចូលទៅជិតការបង្កើតគេហទំព័រដោយគិត។

ជាងនេះទៅទៀត អត្ថប្រយោជន៍នៃការផ្ទេរកូដមួយចំនួនគឺជាក់ស្តែងនៅក្នុងមួយផ្សេងទៀត ពោលគឺល្បឿននៃការផ្ទុកគេហទំព័រមិនអាស្រ័យលើចំនួនកម្មវិធីជំនួយសកម្មនោះទេ ប៉ុន្តែនៅលើខ្លឹមសាររបស់វា! ដូច្នេះហេតុអ្វីបានជាមិនបង្រួមឯកសារមុខងារដែលដូចដែលបានរៀបរាប់គឺត្រូវបានផ្ទុកបន្តិចក្រោយមក ..? ហើយក៏ជាកម្មវិធី PLUGIN កម្រិតគំរូដ៏ធំពេញលេញផងដែរ! ដូច្នេះតើលេខកូដរបស់គាត់ភាគច្រើននៅឯណា?

តាមគំនិតរបស់ខ្ញុំ គំរូ (សកម្ម និងធ្វើការ) គួរតែមានតែប៉ារ៉ាម៉ែត្រជាក់លាក់របស់វាប៉ុណ្ណោះ។

ដំណើរកំសាន្តទៅកាន់លេខនព្វន្ធ...

  1. ផ្ទុកនៅពេលក្រោយ សំណួរគឺ ហេតុអ្វីមិនផ្លាស់ទីវាទៅកន្លែងដែលដំណើរការកូដត្រូវបានអនុវត្តមុនគេ ហើយយោងទៅតាមការកែតម្រូវទៅលើប៉ារ៉ាម៉ែត្រស្នូល WP ដែលបានបញ្ជាក់ដោយអ្នកគ្រប់គ្រងនឹងត្រូវបានអានលឿនជាងមុន និងដំណើរការនៅដំណាក់កាលដែលត្រូវគ្នានៃគេហទំព័រ។ បើកដំណើរការ?
  2. ភាពរហ័សរហួនដ៏ល្បីល្បាញ និងការរៀបចំឡូជីខលនៃមុខងាររបស់គេហទំព័រ។
  3. ភាពងាយស្រួល ដែលមិនសំខាន់!

លើសពីនេះទៀតដូចដែលវាត្រូវបានគេនិយាយ ឯកសារមុខងារគឺជាកម្មវិធីជំនួយដូចគ្នា - ម្តងទៀតខ្ញុំនឹងសួរថាហេតុអ្វីបានជារុញអ្វីគ្រប់យ៉ាងដែលអ្នកចូលទៅក្នុងវា? ហើយនៅក្នុងដំណើរការនៃការធ្វើការជាមួយគេហទំព័រនេះ មានការភ័ន្តច្រឡំនៅក្នុងឯកសារកូដដ៏ធំ និងពិបាកអាន ដែលតាមវិធីនេះ មានការហើមពោះមិនគួរឱ្យជឿ និងមិនសមហេតុផលដោយខ្លឹមសាររបស់វា។

វាកាន់តែងាយស្រួល និងឡូជីខលក្នុងការបង្កើតកម្មវិធីជំនួយទម្ងន់ស្រាល កំណត់រចនាសម្ព័ន្ធ និងបំភ្លេច...

នៅក្នុងពាក្យមួយមនុស្សគ្រប់គ្នាសម្រេចចិត្តដោយខ្លួនឯង: ថាតើត្រូវស្តាប់បទពិសោធន៍ផ្ទាល់ខ្លួនរបស់គាត់ឬតាមគំនិតរបស់អ្នកនិពន្ធនៃអត្ថបទអប់រំជាក់លាក់មួយ។

ខណៈពេលដែលការរៀនធ្វើតាមនៅក្នុងបណ្ណាល័យ 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

ដើម្បីបង្កើតកម្មវិធីជំនួយផ្ទាល់ខ្លួនរបស់អ្នកសម្រាប់ការរក្សាទុកកូដរបស់អ្នក អ្នកត្រូវការ៖

  1. បង្កើតឯកសារអត្ថបទដោយប្រើកូដរបស់អ្នក ហើយរក្សាទុកវាជាឯកសារ .php
  2. ខ្ចប់ឯកសារ .php លទ្ធផលទៅក្នុងប័ណ្ណសារ .zip
  3. ដំឡើងបណ្ណសារនេះជាកម្មវិធីជំនួយ 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 និងការផ្ទុកខ្ជិល ខ្ញុំអាចស្រមៃថាការប្រើរុំរាក់ដើម្បីគ្រប់គ្រងកម្មវិធីជំនួយ និងងាកទៅរកការផ្ទុកដោយស្វ័យប្រវត្តិសម្រាប់ផ្នែកបន្ថែមពិតប្រាកដ។

/ ** * 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 សាមញ្ញដែលគ្រាន់តែរាយបញ្ជីកម្មវិធីជំនួយ និងការកំណត់ដូចនេះ៖

"អ្នកប្រើប្រាស់ / 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 ផ្សេងទៀតគឺជាឧទាហរណ៍អាក្រក់ណាស់។

យើងត្រូវយល់ថាម៉ូឌុលស្ទើរតែតែងតែមានន័យថាវាធ្ងន់ជាង។

គ្រោងការណ៍ដ៏ល្អបំផុតដែលខ្ញុំធ្លាប់បានធ្វើការជាមួយដើម្បីដោះស្រាយស្ថានភាពនេះគឺកម្មវិធីជំនួយដែលមានមូលដ្ឋានលើថ្នាក់ ដោយមានអនុសញ្ញាដាក់ឈ្មោះយ៉ាងតឹងរឹង ដោយប្រើកម្មវិធីផ្ទុកស្វ័យប្រវត្តិ។

ដូចនេះ អ្នកត្រូវធ្វើភ្លាមៗ ឬប្រើមុខងារឋិតិវន្ត មុនពេលប្រើកម្មវិធីជំនួយ។

អ្នកក៏អាចហៅកម្មវិធីជំនួយ៖

ឧទាហរណ៍:

"/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 ឯកសារតិចជាងមុនដែលត្រូវបញ្ចូល។

មានគម្រោងស្អាតមួយហៅថា