Вставка 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 для... В данной статье вы найдете информацию о том, как создать красивую форму подписки...Feedburner для WordPress.
Как вставлять картинки в комментарии WordPress... Речь в данной статье пойдет о плагине для WordPress, который позволяет вставлять...изображения в комментарии. Разумеется, это не единственный способ выполнения...данной операции, ведь уже размещенное в интернете изображение можно вставить в...комментарий с использованием ссылки не него. Однако, для этого изображение...должно быть размещено в интернете, а какое-либо стороннее изображение, к примеру,...с жесткого диска вашего компьютера, добавить не удастся. В этом случае на помощь...придет рассматриваемый ниже плагин.
Простой способ изменить фон для WordPress сайта... Сегодняшняя статья будет наиболее интересна новичкам, которые хотят изменить или...установить фон для своего сайта на WordPress, ведь в ней я расскажу об одном быстром и...простом способе сделать фон для своего интернет-ресурса.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Adblock detector