Боковая область WordPress
Оригинальное название: WordPress sidebar
Коротко
Место в макете темы, зарегистрированное в коде для размещения виджетов; в оригинале sidebar, хотя может находиться в подвале, шапке или под записью.
Что такое «Боковая область WordPress»
Название осталось с ранних блогов, где виджеты стояли в колонке сбоку от текста. Позже темы стали регистрировать такие зоны где угодно: три колонки в подвале, полоса над шапкой, блок после записи. В коде все они по-прежнему называются sidebar, а в интерфейсе — «Области виджетов». Эта статья — о стороне разработчика: как область появляется в теме. О том, как её наполняет владелец сайта, — в статье про область виджетов.
Регистрация и вывод
Тема объявляет область на хуке widgets_init, указывая ID, название и обёртки для каждого виджета:
add_action( 'widgets_init', function () {
register_sidebar( array(
'id' => 'footer-1',
'name' => 'Подвал, колонка 1',
'before_widget' => '<section id="%1$s" class="widget %2$s">',
'after_widget' => '</section>',
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
) );
} );
В шаблоне область выводят функцией dynamic_sidebar( 'footer-1' ), а обёртку вокруг неё — только при наличии виджетов, проверив is_active_sidebar( 'footer-1' ). Иначе на странице останется пустой блок с отступами.
Что ломается чаще всего
- Сменили ID области в коде — виджеты «отвязываются» и уходят в неактивные. Они хранятся в настройке
sidebars_widgetsименно по ID. - При смене темы WordPress пытается сопоставить старые и новые области, но часто виджеты всё равно оказываются в неактивных и их приходится расставлять заново.
- Заголовки виджетов выводятся тегом
h2илиh3на каждой странице — это лишние заголовки в структуре. Обёрткуbefore_titleлучше продумать заранее.
Двойное значение слова «сайдбар»
В редакторе блоков sidebar — это ещё и правая колонка с настройками записи и блока. С виджетами она никак не связана, подробнее — в статье о боковой панели настроек. В блочных темах зарегистрированные области не используются: их роль играют блоки в шаблонах.

