WordPress. Что такое сайдбар
Сайдбар — это область сайта слева или справа от основного контента, другми словами — боковая колонка. В WordPress сайдбаром называется любая область на сайте, в которой выводятся виджеты. Назначение сайдбара — навигация по сайту, ссылки на социальные сети, виджеты каких-либо сторонних сервисов.
Давайте создадим два сайдбара — один в боковой колонке и один в подвале сайта. Поместим в них виджеты и посмотрим, как можно вывести сайдбары в шаблоне темы.
Регистрация сайдбара
Функция register_sidebar() позволяет зарегистрировать место для сайдбара. После регистрации в панели управления появится место, куда можно помещать виджеты. Функцию нужно подключать к событию widgets_init .
Для поддержки виджетов необходимо активировать эту возможность с помощью функции
Функция register_sidebar() активирует поддержку виджетов автоматически.
Функция register_sidebar()
- name (строка). Название панели виджетов. Название будет видно в админ-панели WordPress. Значение не должно быть пустым. По умолчанию: sprintf(__(‘Sidebar %d’), $i) .
- id (строка). Идентификатор виджета. Строка, в которой не должно быть заглавных букв и пробелов. Значение не должно быть пустым. По умолчанию: "sidebar-$i" .
- description (строка). Текст, описывающий где будет выводиться панель виджетов. Показывается в панели управления виджетами. По умолчанию пустая строка.
- before_widget (строка). HTML код, который будет расположен перед каждым виджетом в панели. Конструкции %1$s и %2$s будут заменены на id и class виджета. По умолчанию: ‘<li >’ .
- after_widget (строка). HTML код, который будет расположен после каждого виджета в панели. По умолчанию: "</li>\n" .
- before_title (строка). HTML код перед заголовком виджета. По умолчанию: ‘<h2 >’ .
- after_title (строка). HTML код после заголовка виджета. По умолчанию: "</h2>\n" .
Настройка виджетов
Теперь в панели управления «Внешний вид • Виджеты» можно добавлять и настраивать виджеты в сайдбарах:
Как вывести сайдбары в шаблоне
Для этого предназначены функции is_active_sidebar() и dynamic_sidebar() :
Сайдбары WordPress — как подключить боковую панель и использовать виджиты
Чтобы зарегистрировать виджеты WordPress на боковой панели сначала необходимо эту самую боковую панель создать. Для этого находим в вашей теме WordPress файл functions.php и добавляем в него следующие строки:
Как наполнить sidebar виджетами
Переходим в меню «Внешний вид — виджеты» и перетаскиваем мышкой доступные виджеты на зарегистрированную нами ранее панель.
WordPress сайдбар — как добавить виджеты
Как вывести сайдбар на странице
В нужном нам месте на странице где должен быть сайдбар необходимо вставить следующий код:
Сайдбары в WordPress
Прежде всего давайте уточним несколько общих моментов про сайдбары:
- Сайдбар — это область сайта слева или справа от основного контента (одним словом боковая колонка),
- Сайдбар в WordPress — это любая область на сайте, в которой выводятся виджеты;
В обоих случаях предназначение у сайдбаров одинаковое — навигация по сайту, ссылки на социальные сети, виджеты соц сетей, виджеты каких-либо сторонних сервисов (например поиск авиабилетов) и т.д.
Единственное отличие определения сайдбара в WordPress это то, что он может находится где угодно на странице сайта (но чаще всего это боковые колонки справа и слева от контента и футер).
В этом шагу мы рассмотрим пошагово как создать два сайдбара — один в боковой колонке и один в подвале (футере) сайта.
Шаг 1. Регистрация сайдбара
Для начала скажу, что в разных темах WordPress сайдбары регистрируются по-разному, в некоторых ещё до сих пор используется способ 2007-го года. Почему? Да просто некоторые липовые разработчики любят неосознанно копировать код из других тем, их даже не волнует, что тема, которую они используют в качестве своего «на все случаи» шаблона, не обновлялась более 5 лет.
Это я к тому, что код, который я дам вам сегодня может отличаться от кода, используемого в вашей теме — пусть это не станет поводом для волнений, просто замените старый код на новый.
Как я уже говорил, мы будем создавать два сайдбара — в боковой колонке и в футере, в этом нам поможет функция register_sidebar() (если что-то будет непонятно в коде — смотрите документацию функции). Хук widgets_init обязателен!
Код для файла functions.php :
Вот что получилось у меня на странице Внешний вид > Виджеты:
Уже сейчас вы можете добавлять и настраивать виджеты в сайдбарах, теперь осталось только вывести их на сайте.
Шаг 2. Как отобразить сайдбары на страницах сайта?
Как и в случае из первого шага, в разных темах вы можете найти разный код, отвечающий за вывод сайдбаров на сайте. Я рассмотрю только один способ, который использую сам, с использованием функций is_active_sidebar() и dynamic_sidebar().
В двух словах о том, для чего нужны эти функции:
- is_active_sidebar() — проверяет, есть ли в сайдбаре виджеты,
- dynamic_sidebar() — выводит сайдбар;
Давайте теперь выведем те два сайдбара, которые мы создавали в прошлом шаге. И начнем с боковой колонки:
Куда вставлять код? Ну где хотите вывести сайдбары, туда и вставляйте. Не уверены в какой файл? Ну, вообще это полностью зависит от вашей темы, но вероятнее всего, что код боковой колонки вставлять в sidebar.php , а код футера в footer.php . Возможно вам ещё пригодится документация функций get_sidebar() и get_footer().
Ещё несколько советов относительно сайдбаров
Каждый из нижеперечисленных советов поможет избежать весьма серьёзных багов на сайте, однако, если вы хорошо разбираетесь в PHP и WordPress, ничего нового из этих советов вы не узнаете.
- Если выводимый садбар не имеет виджетов, то при помощи if и else можно задать код, который будет выполняться в этом случае:
Если у вас возникнет какой-либо вопрос относительно сайдбаров в WordPress, пожалуйста, оставьте его в комментариях, я постараюсь вам помочь с ним разобраться.