Исполняемый PHP-код в виджетах WordPress
Виджеты в WordPress – одна из лучших и отличительных особенностей этой CMS, которая позволяет без особых знаний управлять содержимым сайдбаров (боковых колонок), футера (низом сайта) и хедера (верхом сайта).
Но варианты использования виджетов не ограничиваются только этими функциями, и лично я применил их для реализации одного весьма необычного информера, где мне было необходимо воспользоваться чистым PHP-кодом. Кто-то скажет, что для этого есть функции и шорткоды (shortcodes). Возможно, но те задачи, которые стояли передо мной и мои варианты их решения требовали именно возможности запуска исполняемого PHP-кода в виджете WordPress.
Не знаю, существуют ли плагины под это дело, но небольшая функция помогла достигнуть желаемого результата.
Функция эта выглядит так:
function widget_run_php($widget_content) {
if(strpos($widget_content, "<?php") !== false) {
eval(" ?>".$widget_content."<?php ");
}
return $widget_content;
}
add_filter("widget_text", "widget_run_php", 99);
Ее вы вставляете в файл functions.php (желательно в самый низ), который находится в папке вашей темы.
После чего, например, вы создаете виджет с типом «Текст» и вставляете в него этот код:
<?php
echo "Hello, world!";
?>
Если на сайте после сохранения изменений вы увидели чистую фразу «Hello, world!» – значит, вы все сделали правильно и можете дальше реализовывать свои идеи. Если желаемый результат не достигнут – напишите в комментариях, я постараюсь вам помочь.