Комбинированный сайдбар

Когда я начинал создавать тему для meantraitors.ru, то изначально не планировал поддержку виджетов. Зачем? Практически всё необходимое можно вывести посредством простых запросов.
Но давеча, когда я наконец-то озаботился многоязычной поддержкой сайта, пришлось пересмотреть своё отношение к виджетам. Оказалось, что плагин-переводчик можно вывести только через соответствующий виджет. Нет, можно, конечно, поковыряться в коде, интегрировать функционал плагина в тему, но потом, когда возникнет необходимость добавить/удалить поддержку очередного языка, то придётся снова лезть в код, вникать в механизм работы плагина и корректировать методом проб и ошибок. Не самый удобный вариант.
В итоге, было принято решение сделать комбинированный сайдбар: часть его должна отображать уже введённый вручную код, а часть – виджеты.
Что для этого нужно?
Открываем в теме файл sidebar.php и в том месте, где хотим вывести виджет вставляем следующие строки:
< ?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?>
< ?php endif; ?>

После этого сайдбар “научился” выводить виджеты. Но этого не достаточно, т.к. перейдя в админку в раздел виджетов, увидим сообщение об ошибке. Что бы поправить это, создаём в теме (или редактируем, если уже есть) файл functions.php. Вставляем в него следующий код:
< ?php if ( function_exists('register_sidebar') ) register_sidebar(); ?>
Вот теперь – всё. Переходим раздел виджетов и выбираем нужный.
Собственно этод метод и несколько других описаны в кодексе WordPress.
Вобщем, этим способом мне удалось вывести панельку автоматического переводчика на meantraitors.ru.
Кстати, есть ещё одна интересная фича: первый кусок кода можно вставить не в сайдбар, а, предположим, в header.php и отредактировав CSS, сделать панель аналогичную навигационной.
Или вставить в index.php – тогда (при наличии в теме файлов page.php и/или single.php) виджет будет отображаться только на главной странице. Возможны варианты! 😉

Запись опубликована в рубрике интернет, компьютерное с метками , , . Добавьте в закладки постоянную ссылку.

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