Кнопка «Edit with Page Builder Sandwich» не з’являється
Якщо ви не бачите кнопки «Edit with Page Builder Sandwich» на фронтенді свого сайту, ось кілька речей, які ви можете спробувати:
Переконайтеся, що панель адміністратора видима
Кнопка редагування для PB Sandwich доступна на панелі адміністратора у вашому фронтенді. Переконайтеся, що панель адміністратора відображається, перейшовши до панелі керування та відкривши розділ Користувачі > Ваш профіль і перевіривши, чи позначено пункт Показувати панель під час перегляду сайту.

Переконайтеся, що ви перебуваєте на сторінці, у дописі або у власному типі дописів
Лише дописи, сторінки та власні типи дописів можна редагувати на фронтенді. Ви можете редагувати елементи на фронтенді лише тоді, коли можете редагувати їх за допомогою редактора вмісту WordPress у бекенді. Інші розділи вашого сайту (наприклад, список дописів блогу на головній сторінці, список усіх дописів, списки категорій, сторінки 404, сторінки пошуку) є динамічними сторінками, створеними WordPress разом із темою, яку ви використовуєте, і їх не можна редагувати за допомогою PB Sandwich.
Однією з ознак того, що поточну вебсторінку можна редагувати, є наявність пункту «Редагувати допис» або «Редагувати сторінку» на панелі адміністратора.
Переконайтеся, що ваш вміст не генерується динамічно вашою темою або плагіном
Якщо ваша сторінка/допис динамічно генерується темою або плагіном, її не можна буде редагувати за допомогою Page Builder Sandwich (і, найімовірніше, в інших конструкторах сторінок також). Якщо ви помітили, що редактор вмісту в бекенді порожній, але під час перегляду сторінки на фронтенді вона заповнена вмістом, це явна ознака того, що ваша сторінка згенерована динамічно.
Щоб перевірити, чи ваша сторінка генерується динамічно, перегляньте вихідний код вашої вебсторінки (клацніть правою кнопкою миші та виберіть «Переглянути джерело сторінки»). Знайдіть текст «pbs-main-wrapper»: якщо ви ніде не бачите цього тексту, отже, ваша сторінка генерується динамічно.
Ось кілька прикладів динамічно згенерованого вмісту:
- Ваша сторінка складається з кількох віджетів, які ви додаєте/редагуєте за допомогою Customizer,
- Ваша сторінка складається з різних сторінок, об’єднаних односторінковою темою («one page») (у цьому випадку ви все одно можете редагувати окремі сторінки, але не об’єднану), або
- Ваша сторінка складається з останніх дописів блогу.
Спробуйте спочатку додати трохи вмісту
Були випадки, коли тема взагалі не відображала вміст, якщо він порожній, і через це PBS помилково вважав, що сторінку не можна редагувати. Щоб перевірити, чи це так, відредагуйте свою сторінку/допис у бекенд-редакторі, спробуйте додати будь-який текст у свій вміст (наприклад, «hello»), а потім натисніть кнопку «Edit with Page Builder Sandwich» звідти.
Дякуємо Mathias Hellquist за цю підказку!
Переконайтеся, що ваша сторінка не «захоплена» іншим конструктором сторінок
Деякі конструктори сторінок змушують обирати між стандартним редактором вмісту WordPress та власним редактором конструктора. Якщо ви вже редагували свою сторінку за допомогою іншого конструктора сторінок, можливо, цей конструктор уже «привласнив» вміст, і інші хуки/фільтри вмісту більше не можуть виконуватися. Через це іноді Page Builder Sandwich не може визначити, де знаходиться ваш вміст, і не показує кнопку редагування, оскільки немає чого редагувати.
Щоб це виправити, просто відмовтеся від використання цього конструктора сторінок для цієї конкретної сторінки/допису та виберіть використання стандартного редактора вмісту WordPress.
Переконайтеся, що ви маєте права на редагування сторінки
Кнопка редагування не з’явиться, якщо ви не можете редагувати сторінку. Наприклад, якщо ви є редактором або автором і можете писати дописи блогу та статті на сайті, це не обов’язково означає, що ви можете редагувати головну сторінку або сторінку контактів. Якщо ви бачите кнопку «Редагувати допис» на панелі адміністратора, ви також повинні мати можливість редагувати його за допомогою PB Sandwich. Зверніться до адміністратора сайту за правами редагування, якщо вони вам потрібні.
Можливо, сталася помилка Javascript, яка заважає роботі PB Sandwich
PB Sandwich активно використовує Javascript. Якщо виникають помилки Javascript через інші скрипти на вашому сайті, це може перешкоджати роботі PB Sandwich. Щоб перевірити, чи це так, ви можете відкрити консоль розробника у своєму браузері та перевірити наявність помилок.
Я рекомендую використовувати для цього Chrome. Клацніть правою кнопкою миші на будь-якому місці сторінки, а потім виберіть пункт «Перевірити». Це відкриє нову панель у нижній частині вашого браузера; перейдіть на вкладку «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 повинен знати, де розміщено вміст вашої сторінки/допису. Ми робимо це, відстежуючи, коли WordPress завантажує вміст допису, і «позначаючи» цю область, щоб після завантаження всього ми могли знайти потрібний вміст.
Іноді деякі плагіни перевизначають або обходять цей процес і натомість намагаються завантажити вміст у свій спосіб. Іноді це нормально, але в певних ситуаціях, особливо коли йдеться про завантаження вмісту основного допису, це може призвести до того, що деякі плагіни перестануть працювати. Коли інший плагін обходить цей процес завантаження, зроблені нами «позначки» можуть бути втрачені, і коли надходить час активації редактора, він більше не може знайти ваш вміст. Тому кнопка редагування не з’являється! Ви також можете виявити, що деякі плагіни, які додають вміст на вашу сторінку (наприклад, плагіни для поширення в соціальних мережах), також можуть перестати працювати саме через це.
«Чому» (технічні деталі)
Page Builder Sandwich повинен знати де розміщено вміст вашої сторінки/допису, і він робить це, підключаючись до фільтра the_content і додаючи обгортку навколо вашого основного вмісту. Деякі плагіни можуть перевизначати це та замінювати вміст функцією 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 у вас може відрізнятися, але концепція повинна бути такою самою. Якщо це спрацює, також буде краще створити дочірню тему замість внесення цієї зміни безпосередньо у вашу тему. Крім того, через цю зміну можуть виникнути побічні ефекти, тому краще проконсультуватися з автором теми з цього приводу.