Кнопка «Редактировать с помощью Page Builder Sandwich» не отображается
Если вы не видите кнопку «Редактировать с помощью Page Builder Sandwich» на главной части вашего сайта, вот несколько способов, которые вы можете попробовать:
Убедитесь, что панель администратора видна
Кнопка редактирования для PB Sandwich доступна на панели администратора в публичной части сайта. Убедитесь, что панель администратора видна: перейдите в панель управления, откройте раздел Пользователи > Ваш профиль и дважды проверьте, установлен ли флажок Показывать панель инструментов при просмотре сайта.

Убедитесь, что вы находитесь на странице, в записи или произвольном типе записи
В публичной части сайта можно редактировать только Записи, Страницы и Произвольные типы записей. Вы можете редактировать элементы в публичной части сайта только в том случае, если можете редактировать их с помощью редактора содержимого WordPress в панели управления. Другие области вашего сайта — например, список записей блога на главной, список всех записей блога, списки рубрик, страницы 404, страницы поиска — являются динамическими страницами, созданными WordPress вместе с используемой темой, и не могут быть отредактированы с помощью PB Sandwich.
Одним из признаков того, что текущую веб-страницу можно редактировать, является наличие кнопки «Редактировать запись» или «Редактировать страницу» на панели администратора.
Убедитесь, что ваш контент не генерируется динамически темой или плагином
Если ваша страница/запись создается динамически темой или плагином, её нельзя будет редактировать с помощью Page Builder Sandwich (и, скорее всего, в других конструкторах страниц тоже). Если вы заметили, что редактор содержимого в панели управления пуст, но при просмотре страницы на сайте она заполнена контентом, это явный признак того, что страница генерируется динамически.
Чтобы проверить, генерируется ли страница динамически, просмотрите исходный код страницы (нажмите правой кнопкой мыши и выберите «Просмотреть исходный код страницы»). Найдите текст «pbs-main-wrapper»: если вы нигде не видите этот текст, значит, страница генерируется динамически.
Вот несколько примеров динамически генерируемого контента:
- Страница состоит из нескольких виджетов, которые вы добавляете/редактируете с помощью конфигуратора (Customizer),
- Страница состоит из разных страниц, объединенных темой типа «one page» (в этом случае вы по-прежнему можете редактировать отдельные страницы, но не объединенную), или
- Страница состоит из последних записей блога.
Попробуйте сначала добавить немного контента
Бывали случаи, когда тема вообще не отображала контент, если он был пустым, из-за чего PBS ошибочно считал, что страницу нельзя редактировать. Чтобы проверить это, отредактируйте страницу/запись в редакторе панели управления, попробуйте добавить любой текст в контент (например, «hello»), а затем нажмите кнопку «Редактировать с помощью 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 отображаться не будет).
Чтобы проверить, использует ли ваш сайт CloudFlare Rocket Loader, просмотрите исходный код страницы (нажмите правой кнопкой мыши и выберите «Просмотреть исходный код страницы»), а затем выполните поиск по тексту «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-переменная в вашем коде может отличаться, но суть остается прежней. Если это сработает, будет также лучше создать дочернюю тему, вместо того чтобы внедрять это изменение непосредственно в тему. Кроме того, из-за этого изменения могут возникнуть побочные эффекты, поэтому лучше проконсультироваться с автором вашей темы по этому поводу.