زر “Edit with Page Builder Sandwich” لا يظهر
إذا كنت لا تستطيع رؤية زر “Edit with Page Builder Sandwich” في واجهة موقعك الأمامية، فإليك بعض الأشياء التي يمكنك تجربتها:
تأكد من أن شريط الإدارة الخاص بك مرئي
زر التحرير لـ PB Sandwich متاح في شريط الإدارة في واجهتك الأمامية. تأكد من أن شريط الإدارة مرئي بالانتقال إلى لوحة التحكم والتوجه إلى الأعضاء > حسابك وتأكد من تحديد خيار شريط الأدوات عند تصفح الموقع.

تأكد من أنك في صفحة أو مقال أو نوع منشور مخصص
المقالات والصفحات وأنواع المنشورات المخصصة هي فقط القابلة للتحرير في الواجهة الأمامية. يمكنك فقط تحرير الأشياء في الواجهة الأمامية إذا كان بإمكانك تحريرها باستخدام محرر محتوى ووردبريس في لوحة التحكم. المناطق الأخرى في موقعك – مثل قائمة مقالات المدونة في الصفحة الرئيسية، أو قائمة جميع مقالات المدونة، أو تصنيفات الأقسام، أو صفحات الخطأ 404، أو صفحات البحث – هي صفحات ديناميكية يتم إنشاؤها بواسطة ووردبريس بجانب القالب الذي تستخدمه ولا يمكن تحريرها باستخدام PB Sandwich.
أحد المؤشرات على ما إذا كانت صفحة الويب الحالية قابلة للتحرير هو ما إذا كان بإمكانك رؤية “تحرير المقال” أو “تحرير الصفحة” في شريط الإدارة الخاص بك.
تأكد من أن محتواك لم يتم إنشاؤه ديناميكيًا بواسطة القالب أو إضافة
إذا تم إنشاء صفحتك/مقالك ديناميكيًا بواسطة قالب أو إضافة، فلن تكون قابلة للتحرير باستخدام Page Builder Sandwich (وعلى الأرجح في أدوات بناء الصفحات الأخرى أيضًا). إذا لاحظت أن محرر المحتوى في لوحة التحكم فارغ، ولكن عند عرض صفحتك في الواجهة الأمامية تجدها مليئة بالمحتوى، فهذا مؤشر جيد على أن صفحتك تم إنشاؤها ديناميكيًا.
للتحقق مما إذا كانت صفحتك تم إنشاؤها ديناميكيًا، اعرض مصدر صفحة الويب الخاصة بك (انقر بزر الفأرة الأيمن ثم اختر “عرض مصدر الصفحة”). ابحث عن النص “pbs-main-wrapper”، فإذا لم تتمكن من العثور على هذا النص في أي مكان، فهذا يعني أن صفحتك تم إنشاؤها ديناميكيًا.
إليك بعض الأمثلة على المحتوى الذي يتم إنشاؤه ديناميكيًا:
- تتكون صفحتك من مربعات/ودجات متعددة تضيفها/تعدلها باستخدام أداة التخصيص (Customizer)،
- تتكون صفحتك من صفحات مختلفة مجمعة معًا بواسطة قالب “الصفحة الواحدة” (في هذه الحالة لا يزال بإمكانك تحرير الصفحات الفردية، ولكن ليس الصفحة المجمعة)، أو
- تتكون صفحتك من أحدث مقالات المدونة.
جرب إضافة بعض المحتوى أولاً
كانت هناك حالات لم يعرض فيها القالب المحتوى على الإطلاق إذا كان فارغًا، وجعل هذا PBS يعتقد خطأً أن الصفحة غير قابلة للتحرير. للتحقق مما إذا كان الأمر كذلك، حرر صفحتك/مقالك في محرر لوحة التحكم، وجرب إضافة أي نص في المحتوى الخاص بك (على سبيل المثال “مرحبًا”)، ثم انقر على زر “Edit with Page Builder Sandwich” من هناك.
شكرًا لـ Mathias Hellquist على هذه النصيحة!
تأكد من أن صفحتك غير “مملوكة” لأداة بناء صفحات أخرى
تجعلك بعض أدوات بناء الصفحات تختار إما استخدام محرر المحتوى الافتراضي لووردبريس، أو محرر أداة بناء الصفحات الخاص بها. إذا كنت قد قمت بالفعل بتحرير صفحتك باستخدام أداة بناء صفحات أخرى، فمن المحتمل أن تكون أداة بناء الصفحات تلك قد “استحوذت” بالفعل على المحتوى، ولن يعد بإمكان خطافات/فلاتر المحتوى الأخرى العمل. لهذا السبب، في بعض الأحيان لن يتمكن Page Builder Sandwich من اكتشاف مكان وجود المحتوى الخاص بك ولن يعرض زر التحرير لعدم وجود شيء لتحريره.
لإصلاح ذلك، ما عليك سوى إلغاء استخدام أداة بناء الصفحات هذه لتلك الصفحة/المقال المحدد، واختيار استخدام محرر المحتوى الافتراضي لووردبريس فقط.
تأكد من أن لديك صلاحيات التحرير على الصفحة
لن يظهر زر التحرير إذا لم تكن قادرًا على تحرير الصفحة. على سبيل المثال، إذا كنت محررًا أو مساهمًا ولديك القدرة على كتابة مقالات في الموقع، فهذا لا يعني بالضرورة أنه يمكنك تحرير الصفحة الرئيسية أو صفحة اتصل بنا. إذا كان بإمكانك رؤية زر “تحرير المقال” في شريط الإدارة الخاص بك، فيجب أن تكون قادرًا أيضًا على تحريره باستخدام PB Sandwich. اطلب من مسؤول موقعك الحصول على صلاحيات التحرير إذا كنت بحاجة إليها.
قد يكون هناك خطأ Javascript يمنع PB Sandwich من العمل
يستخدم PB Sandwich لغة Javascript بشكل مكثف. إذا كانت هناك أخطاء Javascript قادمة من سكربتات أخرى موجودة في موقعك، فقد يمنع ذلك PB Sandwich من العمل. للتحقق مما إذا كان هذا هو الحال، يمكنك فتح وحدة تحكم المطورين (developer console) في متصفحك للتحقق من وجود أخطاء.
أوصي باستخدام Chrome لهذه الخطوة. انقر بزر الفأرة الأيمن على أي شيء في الصفحة، ثم انقر على خيار “فحص” (Inspect). سيؤدي هذا إلى فتح مساحة جديدة في الجزء السفلي من متصفحك، انقر فوق علامة تبويب “console”. إذا كانت لديك أخطاء، فيجب أن ترى شيئًا كهذا:

إذا كان لديك خطأ بالفعل، فيمكنك أيضًا الحصول على دليل لمعرفة مصدره عن طريق النقر أو التمرير بمؤشر الفأرة فوق اسم السكربت:

قد تأتي هذه الأخطاء من القالب الخاص بك أو الإضافات الأخرى الموجودة لديك. قد يؤدي إصلاح تلك الأخطاء إلى إعادة تشغيل PB Sandwich مرة أخرى.
إذا كان قالبك أو إحدى إضافاتك يسبب خطأ Javascript، يرجى إعلامنا عبر البريد الإلكتروني على [email protected] وسنبذل قصارى جهدنا لحل المشكلة 🙂
إذا كنت تستخدم CloudFlare، فتأكد من إيقاف تشغيل Rocket Loader
CloudFlare هي خدمة DNS CDN مجانية ومستخدمة على نطاق واسع. إنها رائعة، ولكن يواجه PBS حاليًا مشاكل عندما يتعلق الأمر بميزة Rocket Loader. يعمل Rocket Loader على تحسين وقت تحميل ملفات Javascript، ولكنه يخل بالتبعيات وترتيب استدعاء سكربتات PBS. إذا قمت بتشغيل Rocket Loader، فلن يظهر زر التحرير لـ Page Builder Sandwich (ولن تظهر أي أخطاء في وحدة تحكم Javascript).
للتحقق مما إذا كان موقعك يستخدم ميزة Rocket Loader من CloudFlare، اعرض مصدر صفحة الويب الخاصة بك (انقر بزر الفأرة الأيمن ثم اختر “عرض مصدر الصفحة”)، ثم ابحث عن النص “rocketscript”، وإذا وجدت هذا النص فهذا يعني أن Rocket Loader قيد التشغيل.

اقرأ المقال حول توافق CloudFlare و Rocket Loader للحصول على إرشادات كاملة حول كيفية إيقاف تشغيله.
لقد قمت بكل ذلك وما زال زر التحرير غير موجود!
حسنًا، عند هذه النقطة، إذا لم تنجح أي من الحلول المذكورة أعلاه، فقد حان الوقت لشرح سبب عدم ظهوره وماذا تفعل حيال ذلك. جاهز؟ لنبدأ!
“السبب” (بمصطلحات غير تقنية)
يحتاج Page Builder Sandwich إلى أن يعرف أين يقع محتوى صفحتك/مقالك. نحن نفعل ذلك من خلال رصد وقت قيام ووردبريس بتحميل محتوى المنشور و”وضع علامة” على تلك المنطقة، بحيث عندما يتم تحميل كل شيء يمكننا العثور على مكان المحتوى المهم.
أحيانًا، تقوم بعض الإضافات بتجاوز هذه العملية أو تخطيها وتحاول بدلاً من ذلك تحميل المحتوى بطريقتها الخاصة. في بعض الأحيان يكون هذا أمرًا عاديًا، ولكن في سيناريوهات معينة، خاصة عندما يتعلق الأمر بتحميل محتوى المقال الرئيسي، قد يتسبب هذا في توقف بعض الإضافات عن العمل. عندما تتجاوز إضافة أخرى عملية التحميل هذه، قد تفقد “العلامات” التي وضعناها، وعندما يحين وقت تشغيل المحرر، لا يمكنه العثور على مكان محتواك بعد الآن. وبالتالي، لا يظهر زر التحرير! قد تجد أيضًا أن بعض الإضافات التي تضيف محتوى إلى صفحتك، مثل بعض إضافات المشاركة الاجتماعية، قد تتوقف عن العمل لنفس هذا السبب تمامًا.
“السبب” (بمصطلحات تقنية)
يحتاج Page Builder Sandwich إلى أن يعرف أين يقع محتوى صفحتك/مقالك، وهو يفعل ذلك عن طريق ربط نفسه بفلتر the_content وإضافة غلاف (wrapper) حول محتواك الرئيسي. قد تتجاوز بعض الإضافات ذلك وتقوم بدلاً من ذلك بالكتابة فوق المحتوى باستخدام دالة get_the_content() في مرحلة لاحقة. لسوء الحظ، يؤدي القيام بذلك إلى منع استدعاء جميع فلاتر the_content، وبالتالي يفقد غلاف PBS. كما ستفقد أي تغييرات أجرتها الإضافات الأخرى أيضًا.
لا يوجد حرج في استخدام get_the_content() في حد ذاته، ولكن قد تكون هناك تأثيرات سلبية إذا تم استخدام هذا في الاستعلام الرئيسي وداخل صفحة قالب المنشور الفردي بدلاً من استدعاء the_content() العادي حيث يتم تشغيل جميع فلاتر the_content.
ماذا تفعل حيال ذلك
يمكنك التحقق مما إذا كانت “علامات” Page Builder Sandwich غير موجودة من خلال زيارة صفحتك/مقالك في الواجهة الأمامية وعرض مصدر الصفحة أثناء تسجيل الدخول. ابحث عبر فوضى التعليمات البرمجية عما إذا كان بإمكانك العثور على هذا النص:
data-name="main-content"
إذا استطعت العثور عليه، فقد تكون هناك مشكلة Javascript في مكان ما، فقط أخبرنا بالقالب والإضافات التي تستخدمها ويمكننا إصلاح ذلك.
ولكن إذا لم تتمكن من العثور عليه، فقد يكون السبب ببساطة هو أن قالبك (أو إضافة، ولكن على الأرجح هو القالب إذا كانت صفحة أو مقال مدونة) يقوم بشيء ما بمحتوى المنشور. إذا كان هذا هو الحال، فيجب عليك الاتصال بمطور القالب وإعلامه بالمشكلة! يمكنك أيضًا أن تطلعه على التفسير التقني لـ “السبب” المذكور أعلاه، فهذا يمكن أن يساعد في تصحيح الأخطاء 🙂
إذا كنت تشعر بالثقة في التعديل على PHP، يمكنك محاولة إصلاح ذلك من خلال العثور على ملف القالب الذي يتعامل مع محتوى المنشور. أحد الحلول التي واجهناها هو استبدال استدعاءات:
$content = get_the_content();
بـ:
ob_start(); the_content(); $content = ob_get_clean();<br>
ملاحظة: قد يختلف متغير PHP في حالتك، لكن المفهوم يجب أن يكون نفسه. إذا نجح الأمر، فسيكون من الأفضل أيضًا إنشاء قالب ابن (child theme) بدلاً من تطبيق هذا التغيير في قالبك مباشرةً. قد تكون هناك أيضًا آثار جانبية بسبب هذا التغيير، لذا من الأفضل استشارة مطور القالب الخاص بك بشأن هذا الأمر.