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

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

<p>вам нужно будет создать больше боковых панелей в вашем файле functions.php, а затем отредактировать шаблоны страниц, чтобы вызвать нужную боковую панель.</p><p><strong> добавление боковых панелей </strong></p><p>зайдите в ваш файл functions.php. вы должны увидеть некоторые боковые панели, которые уже зарегистрированы. код будет выглядеть примерно так:</p><pre><code>//adds default sidebar if ( function\_exists('register\_sidebar') ) register\_sidebar(); </code></pre><p>чтобы добавить другую боковую панель, добавьте следующий код любое количество раз после регистрации существующей боковой панели.</p><pre><code>//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>')); } </code></pre><p>там, где написано "name sidebar here", поместите логическое имя для этой новой боковой панели. остальная часть массива позволяет вам поместить html перед виджетом (before\_widget), если ваша тема требует этого для своего дизайна, и поместить html после виджета (after\_widget). кроме того, в темах чаще используется собственный стиль для заголовков виджетов. вы можете поместить этот html перед заголовком (before\_title) и после заголовка (after\_title). в приведенном выше примере заголовок каждого виджета будет иметь <code><h2 class="widgettitle"></code> перед и после него, чтобы закрыть открывающий тег.</p><p><strong> добавьте вашу новую боковую панель в шаблоны страниц </strong></p><p>теперь, когда вы добавили боковую панель, вам нужно поместить ее в шаблон страницы там, где вы хотите. найдите, где боковая панель по умолчанию вызывается внутри вашего шаблона (обычно), и замените ее следующим: номер - это порядок добавления боковой панели в файл functions.php.</p><pre><code><?phpif ( !function\_exists('dynamic\_sidebar') || !dynamic\_sidebar(sidebar number here) ) : ?><?php endif; ?> </code></pre><p>эта боковая панель была второй, добавленной в файл functions.php, поэтому для вызова ее в шаблоне страницы вы поместите 2 внутри <code>!dynamic\_sidebar(put sidebar number here) )</code>.</p><p><strong> добавить виджеты </strong></p><p>после того, как вы добавили его в шаблон страницы, просто добавьте виджеты на боковую панель на странице "внешний вид -> страница администрирования виджетов". там появится новая боковая панель с именем, которое вы дали ей в файле functions.php.</p><p>надеюсь это поможет!</p>

<p>и <a href="http://wordpress.org/extend/plugins/widget-logic/">widget logic</a> тоже вариант.</p>

<ol> <li> <p>widget logic - одно из решений, тоже хорошее.</p> </li> <li> <p>несколько боковых панелей - более надежное решение, поскольку вы можете полностью настроить разметку до и после \_widget в functions.php. не говоря уже о том, что вы можете сделать любое количество этих боковых панелей.</p> </li> <li> <p>более легким решением может быть просто использование класса body для различения типов страниц в css. скрыть то, что вам не нужно, показать то, что вы делаете. это быстрый и простой способ добиться того, чтобы такое происходило.</p> </li> </ol>

<p>другим решением является <a href="http://wordpress.org/extend/plugins/display-widgets/">display-widgets</a> плагин, он добавляет выпадающее меню в каждом виджете, который вы активировали на боковой панели/с, где вы можете выбрать, на каких страницах/сообщениях показывать или скрывать его.</p>

<p>два других варианта: 1. вместо усложнения 'sidebar.php' добавьте новые виджетизированные боковые панели в новый файл боковой панели 'sidebar-xxx.php', а затем в шаблоне страницы используйте</p><ol> <li>вы можете использовать <a href="http://wordpress.org/extend/plugins/widget-context/">contextual-widgets</a> плагин</li> </ol>