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

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

как вставить php код в виджет wordpress

Не знаю как выглядела логическая цепочка разработчиков движка, закрывших такую нужную функцию, но теперь нам надо решать проблему. Впервые с этой проблемой я столкнулся, когда хотел поставить на блог ссылки от Sape и Linkfeed — установил код, а он показал мне фигвам. Поначалу я решил задачу плагином PHP Code Widget, но позже нашел более простое решение. Вам дам сразу последний вариант.

Добавляем функцию вывода PHP кода

Добавляется функция редактированием функционального файла вашей темы. Открываете административную панель блога (консоль) и переходите через ссылку «Внешний вид» в раздел «Редактор» (в левой панели). Справа открываете исходный код файла functions.php.

Редактор WordPress

Для того, чтобы настроить вставку php в виджет WordPress блога, в массив кода файла functions.php, в конце, перед «?>» размещаете следующий скрипт:

function start_sidebar_cod($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', 'start_sidebar_cod', 99);

Перед тем, как разместить скрипт, советую вам сделать резервную копию файла (всякое может случиться и лучше перестраховаться).

На этом все. Теперь вы без труда сможете вставить код php в WordPress виджет. Оценивайте статью звездами, а на вопросы я с радостью отвечу через форму комментариев расположенную сразу под статьей. Помните про обновления блога.

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

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