В WordPress темах иногда очень ограничено количество сайдбаров, и притом некоторые сайдбары хотелось бы выводить в определенных рубриках. Допустим в рубрике «плагины» в сайдбаре справа необходимо выводить названия плагинов, в рубрике «шаблоны» сайдбар с категориями шаблонов. На главной странице сайдбар с рекламой или с анонсами статей. В WordPress это можно организовать путем изменения кода в шаблоне темы.
Итак, наметили цель. Необходимо два дополнительных сайдбара для рубрики Шаблоны и рубрики Плагины.
Сейчас мы сделаем третий и четвертый сайдбар, и во всех подробностях опишем это.

Делаем третий сайдбар

Для этого в файлах вашей темы ищем файл sidebar.php, в этой теме он отвечает за вывод правого сайдбара. Копируете из него весь код и вставляете в новый документ, созданный в программе Notepad++. Даете название документу sidebar2.php, только не запутайтесь в названиях и порядковых номерах сайдбаров.

Регистрируем третий сайдбар (sidebar2.php)

Открываете файл function.php и ищем строку, отвечающую за вывод сайбаров.

if ( function_exists('register_sidebar') ) {
register_sidebar(array('name'=>'Sidebar Left',
	'before_widget' => '<li id="%1$s" class="widget %2$s">',
	'after_widget' => '</li>',
	'before_title' => '<h6>',
	'after_title' => '</h6>',
	));
	
	register_sidebar(array('name'=>'Sidebar Right',
	'before_widget' => '<li id="%1$s" class="widget %2$s">',
	'after_widget' => '</li>',
	'before_title' => '<h6>',
	'after_title' => '</h6>',
	));
	
}

Как найти фрагмент кода в документе при помощи программы Notepad++ читайте здесь. Как видите, в моей теме два сайдбара, левый и правый. Добавляем третий сайдбар, скопировав эту часть и вставив ниже

register_sidebar(array('name'=>'Плагины',
	'before_widget' => '<li id="%1$s" class="widget %2$s">',
	'after_widget' => '</li>',
	'before_title' => '<h6>',
	'after_title' => '</h6>',
	));

Даете свое название сайдбару, я назвал его Плагины, чтобы не запутаться.
Названия можно давать как на русском, так и на английском языке.

 if ( function_exists('register_sidebar') ) {
        register_sidebar(array('name'=>'Sidebar Left',
	'before_widget' => '<li id="%1$s" class="widget %2$s">',
	'after_widget' => '</li>',
	'before_title' => '<h6>',
	'after_title' => '</h6>',
	));
	
	register_sidebar(array('name'=>'Sidebar Right',
	'before_widget' => '<li id="%1$s" class="widget %2$s">',
	'after_widget' => '</li>',
	'before_title' => '<h6>',
	'after_title' => '</h6>',
	));
	
	register_sidebar(array('name'=>'Плагины',
	'before_widget' => '<li id="%1$s" class="widget %2$s">',
	'after_widget' => '</li>',
	'before_title' => '<h6>',
	'after_title' => '</h6>',
	));
	
	register_sidebar(array('name'=>'Шаблоны',
	'before_widget' => '<li id="%1$s" class="widget %2$s">',
	'after_widget' => '</li>',
	'before_title' => '<h6>',
	'after_title' => '</h6>',
	));
}

Обновляете браузер, заходим в админку в раздел виджеты и видим, что сайдбар Плагины появился.
Добавляем новый сайдбар в Вордпресс Также по аналогии делаете еще один сайдбар для Шаблонов, предварительно создав файл sidebar3.php

Выводим сайдбар на страницы сайта

Для этого открываем файл sidebar2.php, находим строку

<?php if (!function_exists('dynamic_sidebar') || !dynamic_sidebar(2)) : ?>

Здесь стоит цифра 2, следовательно второй по счету сайдбар (Sidebar Right) выведется на страницы. Изменяем значение на 3, и выведем сайдбар третий по счету Плагины.(здесь прочтите внимательно, чтобы понять)

Подключаем отдельный сайдбар для рубрики

За вывод сайдбаров в рубриках отвечает файл archive.php. Ищем в конце документа фрагмент кода для вывода сайдбара

<?php get_sidebar(); ?>

Чтобы вывести сайдбар плагины на страницу с рубриками плагины, нам необходимо знать ID рубрики, для этого достаточно в админке WordPress подвести мышку на ссылку рубрики, и посмотреть внизу браузера, например cat=12)как узнать id рубрики в WordPress админкеи заменяете код вызова сайдбара, приведенный выше на следующую конструкцию:

< ?php
if ( is_category('12') ) {
include 'sidebar2.php';
}  else {
include 'sidebar.php';
}
?>

В этом коде - если выводится рубрика с ID 12, то подключается файл sidebar2.php, если выводятся все остальные рубрики — подключать сайдбары из файла sidebar.php. Так как в sidebar2.php мы заменили цифру, то следовательно у нас выведется третий по счету сайдбар Плагины.

Проверяем действие кода вызова сайдбара

В сайдбар поместите какой нибудь виджет, или текстовый документ и зайдите в рубрику. Если виджет отображается в сайдбаре, все сделали правильно, если нет, проверьте код еще раз или пишите в комментарии, поможем.


Так вы можете сделать несколько дополнительных сайдбаров для каждой рубрики. Создаете файлы sidebar3.php, sidebar4.php, sidebar5.php, добавляете дополнительные сайдбары в function.php, редактируете в файле sidebar.php порядковый номер сайдбара.
В файле archive.php можно дописать правила:

<?php
if ( is_category('12') ) {
include 'sidebar2.php';
} elseif ( is_category('13') ) {
include 'sidebar3.php’;
} elseif ( is_category('13') ) {
include 'sidebar4.php';
}  else {
include 'sidebar.php';
}
?>

Для отображения сайдбара на странице с постами данный код вставляете в файле single.php, также заменив стандартный код вызова сайдбара.