Вставка PHP в виджетах WordPress

PHP в виджетах WordPress

Любой, кто пользуется CMS WordPress, наверное когда-нибудь сталкивались с такой ситуацией, когда нужна была необходимость вставить код PHP в виджет, но конечно же из этого ничего не получалось, так как данная функция по непонятно каким причинам отключена при использовании движка WordPress. В виджетах можно добавлять только простой текст или HTML-код. А так иногда хочется например вставить в виджетах счётчик какого-либо рейтинга, использующего функции php, или даже код вызова ссылок различных бирж купли-продажи ссылок, например таких популярных как SAPE, mainlink или setlinks. Но увы, приходиться использовать различные плагины, ухитрения, хаки и работа руками по редактированию кода страниц шаблона, что иногда может привести к негативным последствиям в работоспособности блога или сайта. Так что не забывайте перед какими-либо манипуляциями с редактированием сделать резервную копию, в нашем случае это тоже необходимо сделать. Не стоит надеятся на резервную копию вашего хостера, а если у вас бесплатный хостинг сайтов, то скорее всего эта услуга и не предоставляется, но зато бесплатно.

Для того чтобы PHP-код в виджете всё же исполнялся, необходимо всего лишь в файл functions.php используемой вами темы wordpress вставить следующие строки кода:

add_filter('the_posts', 'update_comment_type_cache');
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 тегом ?>. Обязательно редактировать файл functions.php через консоль управления «Внешний вид — Редактор — functions.php», так как иначе может слететь кодировка страницы.

Очень удобно, нет необходимости теперь редактировать непосредственно файлы шаблона sidebar.php. а также реализуем функцию добавления php в виджетах wordpress без плагинов.