Если у меня есть несколько разных шаблонов страниц, как я могу показать разные коллекции виджетов боковой панели для каждого из этих шаблонов? Я использую тему Starkers в качестве отправной точки.
Вам нужно будет создать больше боковых панелей в вашем файле functions.php, а затем отредактировать шаблоны страниц, чтобы вызвать нужную боковую панель.
Добавление боковых панелей
Зайдите в ваш файл functions.php. Вы должны увидеть некоторые боковые панели, которые уже зарегистрированы. Код будет выглядеть примерно так:
//Adds default sidebar
if ( function_exists('register_sidebar') )
register_sidebar();
Чтобы добавить другую боковую панель, добавьте следующий код любое количество раз после регистрации существующей боковой панели.
//Registers new sidebar
if ( function_exists('register_sidebar') ) {
register_sidebar(array('name' => 'Name Sidebar Here','before_widget' => '','after_widget' => '','before_title' => '<h2 class="widgettitle">','after_title' => '</h2>'));
}
Там, где написано "Name Sidebar Here", поместите логическое имя для этой новой боковой панели. Остальная часть массива позволяет вам поместить HTML перед виджетом (before_widget), если ваша тема требует этого для своего дизайна, и поместить HTML после виджета (after_widget). Кроме того, в темах чаще используется собственный стиль для заголовков виджетов. Вы можете поместить этот HTML перед заголовком (before_title) и после заголовка (after_title). В приведенном выше примере заголовок каждого виджета будет иметь <h2 class="widgettitle">
перед и после него, чтобы закрыть открывающий тег.
Добавьте вашу новую боковую панель в шаблоны страниц
Теперь, когда вы добавили боковую панель, вам нужно поместить ее в шаблон страницы там, где вы хотите. Найдите, где боковая панель по умолчанию вызывается внутри вашего шаблона (обычно), и замените ее следующим: номер - это порядок добавления боковой панели в файл functions.php.
<?phpif ( !function_exists('dynamic_sidebar') || !dynamic_sidebar(Sidebar number here) ) : ?><?php endif; ?>
Эта боковая панель была второй, добавленной в файл functions.php, поэтому для вызова ее в шаблоне страницы вы поместите 2 внутри !dynamic_sidebar(Put sidebar number here) )
.
Добавить виджеты
После того, как вы добавили его в шаблон страницы, просто добавьте виджеты на боковую панель на странице "Внешний вид -> Страница администрирования виджетов". Там появится новая боковая панель с именем, которое вы дали ей в файле functions.php.
Надеюсь это поможет!
И Widget Logic тоже вариант.
Widget Logic - одно из решений, тоже хорошее.
Несколько боковых панелей - более надежное решение, поскольку вы можете полностью настроить разметку до и после _widget в functions.php. Не говоря уже о том, что вы можете сделать любое количество этих боковых панелей.
Более легким решением может быть просто использование класса body для различения типов страниц в css. Скрыть то, что вам не нужно, показать то, что вы делаете. Это быстрый и простой способ добиться того, чтобы такое происходило.
Другим решением является Display-Widgets плагин, он добавляет выпадающее меню в каждом виджете, который вы активировали на боковой панели/с, где вы можете выбрать, на каких страницах/сообщениях показывать или скрывать его.
два других варианта: 1. вместо усложнения 'sidebar.php' добавьте новые виджетизированные боковые панели в новый файл боковой панели 'sidebar-xxx.php', а затем в шаблоне страницы используйте