Встала задача размещения баннеров в виджетах WordPress. Перепробовал множество плагинов. Некоторые из них обещают до 20(!) виджетов в «админ-панели». Но на практике дают возможность установить только один. А если вам необходимо вывести 2, 3 или более баннеров в разных местах? Или просто нужный вам php, html код в виджете? На самом деле все гораздо проще.
Мы пойдем по простому пути и напишем маленькую функцию, которая превратит обычный виджет «Текст» (Text Widget) в виджет поддерживающий php, html код.
Все что нам для этого понадобиться — это вставить вот такой вот код в файл functions.php
, который находиться в каталоге с установленной темой. В моем случае путь выглядит следующим образом /wp-content/themes/rusdigi/functions.php
. Открыв файл любым из редакторов, необходимо вставить в самый конец вот такой код:
< ?php
add_filter('widget_text','execute_php',100);
function execute_php($html){
if(strpos($html,"<"."?php")!==false){ ob_start(); eval("?".">".$html);
$html=ob_get_contents();
ob_end_clean();
}
return $html;
}
?>
После этого вы просто добавляете нужный вам php или html код. Вот, например, как выглядит код партнерского баннера от Rookee, сервиса по раскрутке сайта:
Уведомление: WordPress Fix: php виджет | Grabr
Странно, у меня без допиливания все работает… по крайней мере джава вставляется, html вставляется, все счётчики и баннеры тоже работают…
php разрешать в виджетах не безопасно
ну тут каждый сам решает для себя