Как разделить рендеринг WP_Widget для front и back-end?

Метод widget, который реализуется для отрисовки содержимого виджета вызывается одинаково для фронта и бек-енда. Но, если вы не утруждаете себя созданием необходимых для рендеринга на бек-енде стилей, то результат не похож, на то что вы увидите на фронте.

А чаще всего и не требуется рендерить в беке точно то же, что и на фронте. Здесь гораздо полезнее может быть другая информация, которая, например, описывает настройки виджета для администратора.

У класса WP_Widget есть метод WP_Widget::is_preview(), но он почему то не решает задачу, для которой его написали. Возможно, это исправят.

Второй неудачный подход к решению проблемы- это попытка использовать проверку is_admin(), которая должна помочь нам определить, где вызывается рендеринг.

Отладка показывает, что метод widget() для рендеринга вашего виджета вызывается многократно при вызове предпросмотра в админке. И часть этих запросов действительно купируются проверкой is_admin(), но не все.

Вот эти оставшиеся запросы идут через endpoint — /wp-json/wp/…, что мы и будем проверять. В общем виде это выглядит так:

Мало букафф? Читайте есчо !

Payler для Woocommerce

Ноябрь 25, 2020 г.

Для blitzpet.ru занимался подключением платежной системы payler к woocommerce на WP. Обычно в таких случаях используются готовые "фирменные" плагины, разработанные dev team платежной системы для большинства популярных CMS. Но support со стороны payler ...

Читать

Обновление Inactive User Deleter - v 1.2

Март 29, 2017 г.

Взявшись за переделку собственных плагинов, я нашел время для обновления ещё одной своей древней поделки. Это был первый плагин, который я вообще делал для WP. Я собирал его только лишь с учебными целями - хотел сделать какой-то плагин и разместить его ...

Читать

Управление сортировкой категорий в Wordpress

Август 30, 2017 г.

Wordpress не даёт возможности управлять порядком терминов таксономии. В API (ф-ция get_terms) есть такой параметр как orderby, но нет возможности задать ...

Читать

Отключаем /wp-json/oembed/ в WP

Август 11, 2018 г.

Разработчиков WP не очень заботит SEO, и обновления движка могут оказывать негативные эффекты на индексацию сайта, т.к. могут появляться новые технические страницы, дубли и т.п. В версии 4.4 разработчики добавили RESTful интерфейс, который создаёт дополнительные ...

Читать
 

Комментарии к «Как разделить рендеринг WP_Widget для front и back-end?»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: