По молчанию коды php не работают в виджетах сайдбара сайтов на WordPress. Как правило, код php отображается на сайте как обычный текст. Решить эту проблему можно прибегнув к установке различных плагинов, что довольно неудобно, кроме того, каждый новый плагин добавляет определенную нагрузку на сайт. Разумеется, нагрузку на сайт дают и дополнительные скрипты, но в большинстве случаев она не сопоставима.
Не реализована данная функция в WordPress по той простой причине, что любой php код можно прописать в файле sidebar.php, однако во многих случаях это весьма неудобно и, к тому же, трудозатратно. Кроме того, в при выборе варианта с редактированием sidebar.php, придется заново работать над каждой новой необходимой функцией, тогда как в виджетах все это решается простым добавлением нового текстового блока в нужное место.
Я не слишком часто пользуюсь подобным функционалом. Воспользоваться им пришлось лишь однажды, когда потребовалось установить в сайдбар футера код самостоятельного изменения текущего года в строке копирайта. Однако многим данная возможность может сильно пригодиться.
Опубликованный ниже скрипт нужно прописать в файле functions.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); |
Не забывайте сохранять произведенные изменения!!!
О том помогла вам или не помогла данная статья - прошу отписаться в комментариях, буду весьма признателен!
В данный момент боковые панели не будет отображаться на вашем сайте, поскольку вы не добавили их в вашу тему. Поэтому следующим шагом будет написание функции, которая будет использовать WP_Query , чтобы выводить посты в боковой панели.