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

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

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

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

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

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

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

Написать комментарий

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

Создание публикации по отправленным данным Contact form 7

Июнь 6, 2018 г.

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

Читать

Сохранение изображения (файла) из WPCF7

Июнь 11, 2018 г.

Еще одна задача, связанная с сохранением данных формы WP Contact Form 7 в базе WP, это загрузка и сохранение файла (обычно - изображения). Особенность работы WPCF7, заключается в том, что загруженный через форму временный файл, плагин переносит ...

Читать

 

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

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



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