ប៊ូតុង “កែសម្រួលជាមួយ Page Builder Sandwich” មិនបង្ហាញឡើង

សរសេរដោយ

ក្នុង

, ,

ប៊ូតុង “Edit with Page Builder Sandwich” មិនបង្ហាញឡើង

ប្រសិនបើអ្នកមិនឃើញប៊ូតុង “Edit with Page Builder Sandwich” នៅលើផ្នែកខាងមុខ (frontend) នៃគេហទំព័ររបស់អ្នកទេ នេះជាចំណុចមួយចំនួនដែលអ្នកអាចសាកល្បងបាន៖

ត្រូវប្រាកដថារបារគ្រប់គ្រង (Admin Bar) របស់អ្នកត្រូវបានបង្ហាញ

ប៊ូតុងកែសម្រួលសម្រាប់ PB Sandwich មាននៅលើរបារគ្រប់គ្រងក្នុងផ្នែកខាងមុខនៃគេហទំព័ររបស់អ្នក។ ត្រូវប្រាកដថារបារគ្រប់គ្រងត្រូវបានបង្ហាញ ដោយចូលទៅកាន់ផ្នែកគ្រប់គ្រងរបស់អ្នក ហើយចូលទៅកាន់ Users > Your Profile រួចពិនិត្យមើលឱ្យច្បាស់ថាប្រអប់សម្រាប់ Show Toolbar when viewing site ត្រូវបានគូសធីក។

e5960e581e file w9uN2EeCjm

ត្រូវប្រាកដថាអ្នកកំពុងស្ថិតនៅលើទំព័រ (Page) អត្ថបទ (Post) ឬប្រភេទប្រកាសផ្ទាល់ខ្លួន (Custom Post Type)

មានតែ Posts, Pages & Custom Post Types ប៉ុណ្ណោះដែលអាចកែសម្រួលបាននៅផ្នែកខាងមុខ។ អ្នកអាចកែសម្រួលអ្វីៗនៅផ្នែកខាងមុខបាន លុះត្រាតែអ្នកអាចកែសម្រួលពួកវាដោយប្រើកម្មវិធីកែសម្រួលមាតិការបស់ WordPress នៅផ្នែកខាងក្រោយ (backend)។ ផ្នែកផ្សេងទៀតនៃគេហទំព័ររបស់អ្នក – ឧទាហរណ៍ បញ្ជីអត្ថបទប្លុកនៅលើទំព័រមុខ បញ្ជីអត្ថបទប្លុកទាំងអស់ បញ្ជីប្រភេទ (category listings) ទំព័រ 404 ទំព័រស្វែងរក – គឺជាទំព័រឌីណាមិកដែលបង្កើតឡើងដោយ WordPress រួមជាមួយ Theme ដែលអ្នកកំពុងប្រើប្រាស់ ហើយមិនអាចកែសម្រួលដោយប្រើ PB Sandwich បានទេ។

សញ្ញាសម្គាល់មួយដែលបង្ហាញថាគេហទំព័របច្ចុប្បន្នអាចកែសម្រួលបានគឺ ប្រសិនបើអ្នកអាចឃើញ “Edit Post” ឬ “Edit Page” នៅលើរបារគ្រប់គ្រងរបស់អ្នក។

ត្រូវប្រាកដថាមាតិការបស់អ្នកមិនត្រូវបានបង្កើតឡើងដោយស្វ័យប្រវត្តិតាមរយៈ Theme ឬ Plugin របស់អ្នក

ប្រសិនបើទំព័រ/អត្ថបទរបស់អ្នកត្រូវបានបង្កើតឡើងដោយស្វ័យប្រវត្តិតាមរយៈ Theme ឬ Plugin នោះវានឹងមិនអាចកែសម្រួលជាមួយ Page Builder Sandwich បានទេ (ហើយទំនងជាជាមួយកម្មវិធីបង្កើតទំព័រផ្សេងទៀតក៏មិនបានដែរ)។ ប្រសិនបើអ្នកកត់សម្គាល់ឃើញថាកម្មវិធីកែសម្រួលមាតិការបស់អ្នកនៅផ្នែកខាងក្រោយទទេស្អាត ប៉ុន្តែការមើលទំព័ររបស់អ្នកនៅផ្នែកខាងមុខគឺពោរពេញទៅដោយមាតិកា នោះជាសញ្ញាបញ្ជាក់យ៉ាងច្បាស់ថាទំព័ររបស់អ្នកត្រូវបានបង្កើតឡើងដោយស្វ័យប្រវត្តិ។

ដើម្បីពិនិត្យមើលថាតើទំព័ររបស់អ្នកត្រូវបានបង្កើតឡើងដោយស្វ័យប្រវត្តិឬអត់ សូមមើលកូដប្រភពនៃគេហទំព័ររបស់អ្នក (ចុចកណ្ដុរស្ដាំ រួចជ្រើសរើស “View Page Source”)។ ស្វែងរកអត្ថបទ “pbs-main-wrapper” ប្រសិនបើអ្នកមិនឃើញអត្ថបទនោះនៅកន្លែងណាទេ នោះទំព័ររបស់អ្នកត្រូវបានបង្កើតឡើងដោយស្វ័យប្រវត្តិ។

នេះជាឧទាហរណ៍មួយចំនួននៃមាតិកាដែលបង្កើតឡើងដោយស្វ័យប្រវត្តិ៖

  • ទំព័ររបស់អ្នកត្រូវបានបង្កើតឡើងពី Widget ជាច្រើនដែលអ្នកបន្ថែម/កែសម្រួលដោយប្រើ Customizer,
  • ទំព័ររបស់អ្នកត្រូវបានបង្កើតឡើងពីទំព័រផ្សេងៗគ្នាផ្គុំចូលគ្នាដោយ Theme បែប “one page” (ក្នុងករណីនេះ អ្នកនៅតែអាចកែសម្រួលទំព័រនីមួយៗដាច់ដោយឡែកបាន ប៉ុន្តែមិនអាចកែសម្រួលទំព័ររួមបញ្ចូលគ្នាបានទេ) ឬ
  • ទំព័ររបស់អ្នកត្រូវបានបង្កើតឡើងពីអត្ថបទប្លុកចុងក្រោយបំផុត។

សាកល្បងបន្ថែមមាតិកាមួយចំនួនជាមុនសិន

មានករណីខ្លះដែល Theme មិនបង្ហាញមាតិកាទាល់តែសោះ ប្រសិនបើវាទទេ ហើយចំណុចនេះបានធ្វើឱ្យ PBS យល់ច្រឡំថាទំព័រនោះមិនអាចកែសម្រួលបាន។ ដើម្បីពិនិត្យមើលថាតើស្ថិតក្នុងករណីនេះឬអត់ សូមកែសម្រួលទំព័រ/អត្ថបទរបស់អ្នកនៅក្នុងកម្មវិធីកែសម្រួលផ្នែកខាងក្រោយ សាកល្បងបន្ថែមអត្ថបទណាមួយនៅក្នុងមាតិការបស់អ្នក (ឧទាហរណ៍ “hello”) រួចចុចលើប៊ូតុង “Edit with Page Builder Sandwich” ពីទីនោះ។

សូមអរគុណ Mathias Hellquist សម្រាប់ការណែនាំគន្លឹះនេះ!

ត្រូវប្រាកដថាទំព័ររបស់អ្នកមិនត្រូវបាន “គ្រប់គ្រង” ដោយ Page Builder ផ្សេងទៀត

កម្មវិធីបង្កើតទំព័រមួយចំនួនតម្រូវឱ្យអ្នកជ្រើសរើសប្រើកម្មវិធីកែសម្រួលមាតិកាលំនាំដើមរបស់ WordPress ឬកម្មវិធីកែសម្រួលផ្ទាល់ខ្លួនរបស់កម្មវិធីបង្កើតទំព័រនោះ។ ប្រសិនបើអ្នកបានកែសម្រួលទំព័ររបស់អ្នកដោយប្រើកម្មវិធីបង្កើតទំព័រផ្សេងរួចហើយ វាអាចទៅរួចដែលកម្មវិធីបង្កើតទំព័រនោះបាន “ទាមទារសិទ្ធិ” លើមាតិការួចហើយ ហើយ content hooks/filters ផ្សេងទៀតលែងដំណើរការបានទៀត។ ដោយសារមូលហេតុនេះ ពេលខ្លះ Page Builder Sandwich នឹងមិនអាចកំណត់រកទីតាំងមាតិការបស់អ្នកឃើញទេ ហើយវានឹងមិនបង្ហាញប៊ូតុងកែសម្រួលឡើយ ពីព្រោះគ្មានអ្វីត្រូវកែសម្រួល។

ដើម្បីដោះស្រាយបញ្ហានេះ គ្រាន់តែជ្រើសរើសមិនប្រើប្រាស់កម្មវិធីបង្កើតទំព័រនោះសម្រាប់ទំព័រ/អត្ថបទជាក់លាក់នោះ ហើយជ្រើសរើសប្រើកម្មវិធីកែសម្រួលមាតិកាលំនាំដើមរបស់ WordPress វិញ។

ត្រូវប្រាកដថាអ្នកមានសិទ្ធិកែសម្រួលនៅលើទំព័រនោះ

ប៊ូតុងកែសម្រួលនឹងមិនបង្ហាញឡើយ ប្រសិនបើអ្នកមិនអាចកែសម្រួលទំព័រនោះបាន។ ឧទាហរណ៍ ប្រសិនបើអ្នកជា Editor ឬ Contributor ហើយអ្នកអាចសរសេរអត្ថបទប្លុកនៅលើគេហទំព័រ វាមិនមានន័យថាអ្នកអាចកែសម្រួលទំព័រដើម ឬទំព័រទំនាក់ទំនងយើងខ្ញុំបាននោះទេ។ ប្រសិនបើអ្នកអាចឃើញប៊ូតុង “Edit Post” នៅលើរបារគ្រប់គ្រងរបស់អ្នក នោះអ្នកក៏គួរតែអាចកែសម្រួលវាដោយប្រើ PB Sandwich បានដែរ។ សូមស្នើសុំសិទ្ធិកែសម្រួលពីអ្នកគ្រប់គ្រងគេហទំព័ររបស់អ្នក ប្រសិនបើអ្នកត្រូវការវា។

ប្រហែលជាមានកំហុស Javascript ដែលរារាំងមិនឱ្យ PB Sandwich ដំណើរការ

PB Sandwich ប្រើប្រាស់ Javascript យ៉ាងច្រើន។ ប្រសិនបើមានកំហុស Javascript ដែលកើតចេញពី Script ផ្សេងទៀតនៅលើគេហទំព័ររបស់អ្នក ចំណុចនេះអាចរារាំងមិនឱ្យ PB Sandwich ដំណើរការបាន។ ដើម្បីពិនិត្យមើលថាតើស្ថិតក្នុងករណីនេះឬអត់ អ្នកអាចបើក developer console នៅក្នុងកម្មវិធីរុករករបស់អ្នកដើម្បីពិនិត្យរកមើលកំហុស។ 

ខ្ញុំសូមណែនាំឱ្យប្រើ Chrome សម្រាប់ករណីនេះ។ ចុចកណ្ដុរស្ដាំលើកន្លែងណាមួយក្នុងទំព័រ រួចចុចលើជម្រើស “Inspect”។ វានឹងបង្ហាញផ្ទាំងថ្មីមួយនៅផ្នែកខាងក្រោមនៃកម្មវិធីរុករករបស់អ្នក សូមចុចលើផ្ទាំង “console”។ ប្រសិនបើអ្នកមានកំហុស អ្នកគួរតែឃើញអ្វីមួយដូចនេះ៖

4acce143a3 file

ប្រសិនបើអ្នកពិតជាមានកំហុស អ្នកក៏អាចទទួលបានតម្រុយថាតើវាចេញមកពីណា ដោយចុច ឬដាក់កណ្ដុរលើឈ្មោះរបស់ Script នោះ៖

abb5a87c67 file ITjVcdhZQU

កំហុសទាំងនេះអាចមកពី Theme របស់អ្នក ឬ Plugin ផ្សេងទៀតដែលអ្នកមាន។ ការដោះស្រាយកំហុសទាំងនោះអាចធ្វើឱ្យ PB Sandwich ដំណើរការឡើងវិញបាន។

ប្រសិនបើ Theme របស់អ្នក ឬ Plugin ណាមួយរបស់អ្នកកំពុងបង្កឱ្យមានកំហុស Javascript សូមមេត្តាប្រាប់ឱ្យយើងដឹងតាមរយៈអ៊ីមែល [email protected] ហើយយើងនឹងព្យាយាមឱ្យអស់ពីលទ្ធភាពដើម្បីដោះស្រាយបញ្ហានេះ 🙂

ប្រសិនបើអ្នកកំពុងប្រើ CloudFlare ត្រូវប្រាកដថា Rocket Loader ត្រូវបានបិទ

CloudFlare គឺជាសេវាកម្ម DNS CDN ឥតគិតថ្លៃដែលត្រូវបានប្រើប្រាស់យ៉ាងទូលំទូលាយ។ វាពិតជាអស្ចារ្យ ប៉ុន្តែបច្ចុប្បន្ន PBS មានបញ្ហាទាក់ទងនឹងមុខងារ Rocket Loader។ Rocket Loader ជួយបង្កើនល្បឿនផ្ទុកឯកសារ Javascript ប៉ុន្តែវាធ្វើឱ្យប៉ះពាល់ដល់ភាពអាស្រ័យ និងលំដាប់នៃការហៅ Script របស់ PBS។ ប្រសិនបើអ្នកបើក Rocket Loader នោះប៊ូតុងកែសម្រួលសម្រាប់ Page Builder Sandwich នឹងមិនបង្ហាញឡើងទេ (ហើយក៏គ្មានកំហុស Javascript បង្ហាញក្នុង console ដែរ)។

ដើម្បីពិនិត្យមើលថាតើគេហទំព័ររបស់អ្នកកំពុងប្រើ Rocket Loader របស់ CloudFlare ឬអត់ សូមមើលកូដប្រភពនៃគេហទំព័ររបស់អ្នក (ចុចកណ្ដុរស្ដាំ រួចជ្រើសរើស “View Page Source”) ហើយបន្ទាប់មកស្វែងរកអត្ថបទ “rocketscript” ប្រសិនបើអ្នកឃើញអត្ថបទនោះ មានន័យថាអ្នកបានបើកដំណើរការ Rocket Loader ហើយ។

e4dff5b8c0 file tPnWvP09FF

សូមអានអត្ថបទស្ដីពី CloudFlare & Rocket Loader Compatibility សម្រាប់ការណែនាំពេញលេញអំពីរបៀបបិទវា។


ខ្ញុំបានអនុវត្តចំណុចទាំងអស់នោះហើយ ប៉ុន្តែប៊ូតុងកែសម្រួលនៅតែមិនបង្ហាញ!

មិនអីទេ មកដល់ចំណុចនេះ ប្រសិនបើដំណោះស្រាយខាងលើទាំងអស់មិនដំណើរការ នោះប្រហែលជាដល់ពេលដែលត្រូវពន្យល់ពី មូលហេតុ ដែលវាមិនបង្ហាញ និង អ្វី ដែលត្រូវធ្វើចំពោះបញ្ហានេះហើយ។ រួចរាល់ហើយឬនៅ? តោះចាប់ផ្ដើម!

“មូលហេតុ” (ក្នុងន័យមិនបច្ចេកទេស)

Page Builder Sandwich ត្រូវការ ដឹង ពីទីតាំងដែលមាតិកាទំព័រ/អត្ថបទរបស់អ្នកស្ថិតនៅ។ យើងធ្វើបែបនេះដោយរង់ចាំតាមដាននៅពេលដែល WordPress ផ្ទុកមាតិការបស់អត្ថបទ ហើយ “សម្គាល់” កន្លែងនោះ ដូច្នេះនៅពេលដែលអ្វីៗគ្រប់យ៉ាងត្រូវបានផ្ទុកចប់ យើងអាចស្វែងរកឃើញទីតាំងមាតិកាបាន។

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

“មូលហេតុ” (ក្នុងន័យបច្ចេកទេស)

Page Builder Sandwich ត្រូវការ ដឹង ពីទីតាំងដែលមាតិកាទំព័រ/អត្ថបទរបស់អ្នកស្ថិតនៅ ហើយវាធ្វើបែបនេះដោយភ្ជាប់ទៅកាន់ filter the_content និងបន្ថែម wrapper មួយព័ទ្ធជុំវិញមាតិកាសំខាន់របស់អ្នក។ Plugin មួយចំនួនអាចនឹងជំនួសចំណុចនេះ ហើយសរសេរជាន់លើមាតិកាវិញជាមួយនឹងអនុគមន៍ get_the_content() នៅដំណាក់កាលបន្ទាប់។ ជាអកុសល ការធ្វើបែបនេះរារាំង filters the_content ទាំងអស់មិនឱ្យត្រូវបានហៅដំណើរការ ហេតុដូច្នេះហើយ wrapper របស់ PBS ក៏ត្រូវបានបាត់បង់។ ការផ្លាស់ប្តូររបស់ Plugin ផ្សេងទៀតណាមួយក៏នឹងត្រូវបាត់បង់ដូចគ្នាដែរ។

តាមពិតទៅគ្មានបញ្ហាអ្វីខុសឆ្គងចំពោះការប្រើប្រាស់ get_the_content() នោះទេ ប៉ុន្តែវាអាចមានផលប៉ះពាល់អវិជ្ជមាន ប្រសិនបើវាត្រូវបានប្រើប្រាស់នៅក្នុង main query និងនៅខាងក្នុងទំព័រគំរូនៃអត្ថបទតែមួយជំនួសឱ្យការហៅ the_content() ធម្មតា ដែលជាកន្លែងដែល filters the_content ទាំងអស់ត្រូវបានដំណើរការ។

អ្វីដែលត្រូវធ្វើចំពោះបញ្ហានេះ

អ្នកអាចពិនិត្យមើលថាតើ “ការសម្គាល់” របស់ Page Builder Sandwich មិនមានវត្តមានឬអត់ ដោយចូលមើលទំព័រ/អត្ថបទរបស់អ្នកនៅផ្នែកខាងមុខ ហើយមើលកូដប្រភពទំព័រ ខណៈពេលកំពុងចូលគណនី។ ស្វែងរកតាមរយៈកូដទាំងនោះថាតើអ្នកអាចរកឃើញឃ្លាអត្ថបទនេះដែរឬទេ៖

data-name="main-content"

ប្រសិនបើអ្នកអាចរកវាឃើញ នោះប្រហែលជាគ្រាន់តែមានបញ្ហា Javascript នៅកន្លែងណាមួយប៉ុណ្ណោះ ហើយគ្រាន់តែប្រាប់ឱ្យយើងដឹងពី Theme និង Plugin ដែលអ្នកកំពុងប្រើប្រាស់ នោះយើងអាចដោះស្រាយបញ្ហានោះបាន។

ប៉ុន្តែប្រសិនបើអ្នករកវាមិនឃើញទេ នោះវាប្រហែលជា Theme របស់អ្នក (ឬ Plugin ណាមួយ ប៉ុន្តែទំនងជា Theme ច្រើនជាង ប្រសិនបើវាជាទំព័រ ឬអត្ថបទប្លុក) កំពុងធ្វើអ្វីមួយទៅលើមាតិការបស់អត្ថបទ។ ប្រសិនបើស្ថិតក្នុងករណីនេះ អ្នកគួរតែទាក់ទងទៅអ្នកបង្កើត Theme ហើយប្រាប់ពួកគេអំពីបញ្ហានេះ! អ្នកក៏អាចបង្ហាញពួកគេនូវការពន្យល់អំពី “មូលហេតុ” តាមបែបបច្ចេកទេសខាងលើបានដែរ នេះអាចជួយដល់ការកែកំហុស (debugging) បាន 🙂

ប្រសិនបើអ្នកមានទំនុកចិត្តក្នុងការកែសម្រួលកូដ PHP អ្នកអាចសាកល្បងដោះស្រាយវាបានដោយស្វែងរកឯកសារទំព័រគំរូដែលគ្រប់គ្រងមាតិកាអត្ថបទ។ ដំណោះស្រាយមួយដែលយើងបានជួបប្រទះ គឺការជំនួសការហៅសម្រាប់៖

$content = get_the_content();

ជាមួយ៖

ob_start();
the_content();
$content = ob_get_clean();<br>

ចំណាំ៖ អថេរ PHP អាចមានភាពខុសគ្នានៅក្នុងកូដរបស់អ្នក ប៉ុន្តែគោលការណ៍គឺដូចគ្នា។ ប្រសិនបើវាដំណើរការ វាក៏កាន់តែប្រសើរផងដែរ ប្រសិនបើអ្នកអាចបង្កើត child theme ជំនួសឱ្យការអនុវត្តការផ្លាស់ប្តូរនេះនៅក្នុង Theme របស់អ្នកដោយផ្ទាល់។ វាក៏អាចមានផលប៉ះពាល់ផ្សេងៗដោយសារតែការផ្លាស់ប្តូរនេះផងដែរ ដូច្នេះវាជាការប្រសើរដែលអ្នកពិគ្រោះជាមួយអ្នកបង្កើត Theme របស់អ្នកអំពីបញ្ហានេះ។