Вставка php в виджет WordPress

Рад новой встрече на страницах моего блога!

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

Возможно кто-то спросит, мол для чего вообще нужно вставлять php-код в виджет? Приведу наглядный пример: когда я реализовывал в своем блоге отображение топ комментаторов без использования плагина, то мне понадобилось как раз таки вставить код php в виджет WordPress, чтобы лучшие комментаторы моего блога отображались как я и задумывал в сайдбаре:

Как вставить код php в виджет WordPress?

Приведенный пример является лишь частным случаем, подтверждающим возникающую порой необходимость вставки php в виджет WordPress, и я не думаю, что на этом круг возможностей этой самой вставки кода в виджет ограничивается.

Именно по этой причине в данной статье я и расскажу о том, как сделать так, чтобы код php, вставленный в виджет WordPress, поддерживался и исполнялся как положено, помогая вам реализовать свои планы.

Как сделать поддержку кода php в виджете WordPress?

На самом деле выполняется поставленная задача крайне просто и быстро и всего в одно действие: нужно лишь вставить в файл functions.php вашего шаблона WordPress дополнительный код:

1
2
3
4
5
6
7
8
9
10
add_filter('widget_text','sp_widget_execute_php',100);
function sp_widget_execute_php($text) {
if(strpos($text,'<?') !== false) {
ob_start();
eval('?>'.$text);
$text = ob_get_contents();
ob_end_clean();
}
return $text;
}

И сохранить произведенные изменения.

При вставке кода в файл functions.php нужно придерживаться ряда правил, в частности размещать код функции необходимо внутри конструкции < ?php ? >, а точнее после < ?php но перед ? >. При этом нельзя нарушать целостность кода других функций. Проще всего вставить данный код в самый конец файла перед закрывающим тегом ?>.

Также советую вам предварительно сделать резервную копию исходного файла functions.php на случай потери работоспособности вашего интернет-ресурса вследствие совершения каких-либо ошибок при проведении манипуляций с данным файлом шаблона.

Вносить изменения в файле functions.php можно как непосредственно из админ-панели WordPress (Внешний видРедактор), так и с использованием текстового редактора (рекомендую использовать notepad++) посредством доступа к файлам шаблона через FTP-клиент (о том, как настроить FTP-клиент я писал в статье).

Теперь все должно работать как надо, и код php, вставленный в виджет WordPress, будет правильно интерпретироваться, приводя к задуманному результату.

На этом все! Подписывайтесь на обновления моего блога, чтобы быть в курсе новых публикаций!

С уважением, Владимир Денисов!

Также стоит прочитать:

Красивая форма подписки feedburner для WordPress... Всем привет! Сегодня поменял внешний вид формы подписки на обновления моего...блога, реализованной через такой сервис Google, как feedburner. Именно по этой...причине в данной статье я расскажу о создании красивой формы подписки feedburner...для WordPress.
Картинки в комментариях. Плагин Comment Images... Здравствуйте, читатели моего блога! Речь в данной статье пойдет о плагине для...WordPress, который позволяет вставлять изображения в комментарии. Разумеется,...это не единственный способ выполнения данной операции, ведь уже размещенное в...интернете изображение можно вставить в комментарий с использованием ссылки не...него. Однако, для этого изображение должно быть размещено в интернете, а...какое-либо стороннее изображение, к примеру, с жесткого диска вашего компьютера,...добавить не удастся. В этом случае на помощь приходит плагин.
Галерея изображений стандартными средствами WordPr... Всем привет! В сегодняшней статье я хочу затронуть вопрос создания простой...галереи изображений для WordPress стандартными средствами данной CMS.

Комментарии 14

  • Что-то давненько Вы не писали. Информация интересная, вот так почитаешь и вскоре и сам начнешь разбираться в кодах 💡 Хотя для меня это полный и дремучий лес. Проще говоря как в концовке анекдота: …какие румбы, ты мне пальцем покажи. 😐 ➡

    • Андрей, действительно я давно не писал, я сейчас нахожусь в отпуске на своей основной работе и как-то все не получалось добраться до компьютера 😐 все какие-то дела
      Да уж, точно как в анекдоте 😀 , хотя в данном случае все делается довольно просто, тут даже не надо особо разбираться ➡

  • Ага полезная штука, давно себе установил))

    • Александр, действительно функция может оказаться полезной, и мне не совсем понятно, почему она не предусмотрена по умолчанию 🙂

  • Давненько слышал об этой функции и прочитал не колько статей похожих на вашу,но…не знаю как это обьяснить,я предпочитаю плагины кодам!!!Наверно это из-за того,что мой блог до их пор не перегружен контентом и поэтому не чувствую проблем со скоростью функционала!!!Так что пока что вашу статью добавил в закладку и воспользуюсь этой информацией по мере надобности в будущем!Спасибо вам за статью ➡

  • На самом деле полезная функция, потому не хочется искать файлик, который выводит сайдбар или еще какой-нибудь, и потом искать место куда вставить…
    Так я раньше думал, но сейчас я убрал все функции вывода виджетов и все делаю через код(меньше запросов к базе — за счет чего хоть и маленький, но прирост в скорости загрузки). 😎

    • Юрий, то есть если я правильно понял, добавляете код непосредственно в sidebar.php (если хотите сделать альтернативу виджета)?
      В этом случае согласен, происходит дополнительная оптимизация (не поисковая, разумеется) ресурса!

  • Я у себя ТОП комментаторов реализовал кодом, так намного лучше и 1 плагин минусом. Но я по-моему файл, который в заметке не вставлял в Function.php, наверное для различных тем свои правила. 🙄

    • Возможно вы разместили код, отвечающий за вывод топ комментаторов, непосредственно в файле шаблона (например в sidebar.php), тогда функция поддержки интерпретации php в виджете не нужна. Но может я и ошибаюсь)

  • Спасибо Владимир! Интересный способ. 🙂

  • Да уж,кода не разбираешься куда что закинуть.
    Такая инфа очень полезна.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.