cannyboy
  • 0
Новичок

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

  • 0

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

Share
  1. Это дубликат, у вас уже есть очень похожий вопрос: wordpress.stackexchange.com/questions/805/… — если вы не получили там ответ, который искали, отредактируйте исходные вопросы и сделайте его более точный.

    • 0
  2. Вам нужно будет создать дополнительные боковые панели в файле 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>'));    
    } 
    

    Там, где написано «Назовите боковую панель здесь», введите логичное имя для этой новой боковой панели. Остальная часть массива позволяет вам поместить 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.

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

    • 0
    1. Widget Logic — одно из решений, и тоже хорошее.

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

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

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

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

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

Оставить ответ

You must login to add an answer.