PHP код в виджете WordPress

php-widget

Доброго времени суток! Как-то  хотел добавить php код в сайдбар, используя обычный текстовый виджет, но из этого ничего не вышло. Почему? Потому, что мои виджеты не поддерживали php. Я исправил это недоразумение и решил поделиться с вами решением данной проблемы.

Если вы читали предыдущие статьи, то могли заметить, что я негативно отношусь к плагинам. Предпочитаю добавить несколько строк кода вместо очередного балласта блога. Именно поэтому сейчас мы рассмотрим, как сделать поддержку php в виджетах WordPress без использования плагинов.

Вам не придется прилагать особых усилий, всего лишь нужно использовать небольшой код:

//Php в виджете
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;
 }

 

С помощью этого кода текстовый виджет будет выполнять любой php код. (автор кода: SlowProg)

 

Как и куда вставить код?

Сделать это можно несколькими способами. Зайдите в редактор, в вашей панели администратора и перейдите в «Функции темы (functions.php)», или найдите файл functions.php в вашей теме и откройте редактором Notepad++. Вставьте код в конце файла, перед самой последней строкой «?>».

Наглядный пример:

code-function

Вот и все! Теперь ваш текстовый виджет поддерживает php.

 

Как использовать?

Думаю, все пользователи WordPress знакомы с виджетами. Зайдите в панель администратора, «Внешний вид – Виджеты». Если ваша тема их не поддерживает, не спешите ее менять, сделайте тему Wodpress виджет-совместимой. Перетащите обычный текстовый виджет в боковую колонку и вставьте в него любой php код.

widget

Для проверки я взял простенький php код вывода даты и времени. Все отлично работает. Новичкам часто тяжело что-либо менять в коде, или же они боятся что-то испортить и просят взамен посоветовать плагин. Друзья, здесь нет ничего сложного, если сделаете так, как описал я, то у вас все получится! Также, вы смело можете задавать вопросы в комментариях.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
13 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Наталия
8 лет назад

А что, например, еще можно поставить в виджет с помощью php-кода, кроме вывода даты и времени?

Наталия
Ответить на  Сергей
8 лет назад

Ну, как сделать «Популярные статьи», Вы уже написали. А можете написать следующий пост о том, как установить с помощью php виджет «Лучшие комментаторы месяца»?

Наталия
8 лет назад

Сделала поддержку php в виджетах по Вашему совету. Только в коде functions.php у меня не было в конце строчки
?>

У меня заканчивалось так:

}

/* You custom functions below */

Наталия
8 лет назад

Я вставила код перед последней строчкой
/* You custom functions below */

Наталия
Ответить на  Сергей
8 лет назад

Через админку WP, в Редактор 🙂

Сергей
8 лет назад

Плагин Antivirus ругается на этот код. Ему не нравятся слова eval и ob_get_contents. В чём проблема? Не опасно ли использование данного кода?

Людмила
8 лет назад

С помощью этого кода планирую переделать Топ комментаторов. В «Функции темы» я скопированный код вставила. Буду ждать урока по установке «Топа коментаторов» в сайтбаре без использования плагина. Спасибо за ваш труд.

13
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x
Send this to a friend