it-swarm-ru.tech

Разные виджеты на разных шаблонах страниц?

Если у меня есть несколько разных шаблонов страниц, как я могу показать разные коллекции виджетов боковой панели для каждого из этих шаблонов? Я использую тему Starkers в качестве отправной точки.

4
cannyboy

Вам нужно будет создать больше боковых панелей в вашем файле 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.

Надеюсь это поможет!

8
Joshua Lynch

И Widget Logic тоже вариант.

3
ZaMoose
  1. Widget Logic - одно из решений, тоже хорошее.

  2. Несколько боковых панелей - более надежное решение, поскольку вы можете полностью настроить разметку до и после _widget в functions.php. Не говоря уже о том, что вы можете сделать любое количество этих боковых панелей.

  3. Более легким решением может быть просто использование класса body для различения типов страниц в css. Скрыть то, что вам не нужно, показать то, что вы делаете. Это быстрый и простой способ добиться того, чтобы такое происходило.

1
eddiemoya

Другим решением является Display-Widgets плагин, он добавляет выпадающее меню в каждом виджете, который вы активировали на боковой панели/с, где вы можете выбрать, на каких страницах/сообщениях показывать или скрывать его.

1
Philip

два других варианта: 1. вместо усложнения 'sidebar.php' добавьте новые виджетизированные боковые панели в новый файл боковой панели 'sidebar-xxx.php', а затем в шаблоне страницы используйте

  1. вы можете использовать contextual-widgets плагин
0
hannit cohen