Вставка 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, будет правильно интерпретироваться, приводя к задуманному результату.

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

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

Ищешь заработок в Интернете? Записывайся на бесплатный онлайн курс «СПЕЦИАЛИСТ ПО ИНТЕРНЕТ-РЕКЛАМЕ» и получи удаленную профессию рекламщика в Яндекс Директ за 10 дней!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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