Доброго времени суток, недавно потребовалось вывести в сайдбаре данные используя PHP код, но вот беда — виджеты WordPress не воспринимают PHP код как нам нужно, то есть в стандартных виджетах пхп код отображается как простой текст. Собственно, решение данной проблемы есть — плагины, про эти плагины и пойдёт речь.
-
Плагины Daiko’s Text Widget для работы с PHP кодом в виджетах
- WP PHP widget
- Executable PHP widget
-
Использование PHP кода в виджетах WordPress без плагинов
Данный плагин ‘Daiko’s Text Widget’ (который я сам использую) и позволит нам добавить виджет в сайдбар, который будет обробатывать PHP код как код, а не как текст. Помимо php так же можно использовать html, javascript ну естественно простой текст. Собственно, устанавливается он достаточно просто, так же как и любой другой плагин. Самый простой способ это перейти в консоль WordPress, далее перейти в плагины и жмакнуть на ‘Добавить новый’. В текстовое поле под поиск вводим непосредственно само название плагина ‘Плагин Daiko’s Text Widget’ и жмём найти. Теперь устанавливаем его, активируем и он готов к работе. Работать с ним так же как и с простым виджетом, то есть переходим в консоль — > ‘внешний вид’ -> ‘виджеты’ ну и перетаскиваем его в нужную вам панель. Для проверки можно ввести что-то типа:
<?PHP echo "Hello world"; ?>
И если в виджете на сайте будет отображаться ‘Hello world’ вместо той простыни что выше то, плагин успешно работает.
Всё бы конечно хорошо, но есть одно небольшое НО, данный плагин можно добавить в сайдбар только 1 раз. То есть, вы не сможете добавить его ещё раз. Но например мне хватает и 1 добавленного данного виджета.
Теперь приведу небольшой список аналогичных плагинов:
Помимо всего прочего, существует возможность использования PHP кода в стандартных виджетах ‘Текст’ без использования плагинов. Делается это путём добавления кода в файл ‘functions.php’ вашей темы.
function php_in_widgets($widget_content) { if (strpos($widget_content, '<' . '?') !== false) { ob_start(); eval('?' . '>' . $widget_content); $widget_content = ob_get_contents(); ob_end_clean(); } return $widget_content; } add_filter('widget_text', 'php_in_widgets', 99);
Данные код позволяет работать с пхп кодом в стандартных виджетах ‘Текст’ (который обычно позволяет выводить просто текст или HTML-код).
На этом у меня всё, удачи.
$widget_content = ob_get_contents();
Антивирус ругается и указывает на них, как на вирус.
-
gloys Говорит:
26.11.2012 at 7:31 дп
Не стоит волноватся, eval в данном случае вреда не причинит…Но лучше используйте плагины если боитесь : )