Отдельный сайдбар для рубрики

Здравствуйте, хочу сделать для одной из рубрик отдельный сайдбр. Нашел в интернете один вариант и сделал следующее.
Имею код в function.php

<?php
if ( function_exists('register_sidebar') )
    register_sidebars(2, array(
        'before_widget' => '<div id="%1$s" class="widget %2$s">',
        'after_widget' => '</div>',
        'before_title' => '<h2 class="widgettitle">',
        'after_title' => '</h2>',
    ));

И код в sidebar.php

<div class="SR">

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

  <!-- Start SideBar2 -->

  <div class="SRR">

    <!-- Start Найти -->

    <div class="Найти">

      <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

        <input type="text" name="s" class="keyword" />

        <div class="bt">

          <input name="submit" type="submit" class="search" title="Найти" alt="Найти" value="Найти" />

        </div>

      </form>

      <div class="clr"></div>

    </div>

    <!-- End Найти -->


    <!-- Start Рубрики -->

    <div>

      <h2>Рубрики</h2>

      <ul>

        <?php wp_list_cats('show_count=1'); ?>

      </ul>

    </div>

    <!-- End Рубрики -->

    <!-- Start Архивы -->

    <div>

      <h2>Архивы</h2>

      <ul>

        <?php wp_get_archives('type=monthly'); ?>

      </ul>

    </div>

    <!-- End Архивы -->

    <!-- Start Ссылки -->

    <div>

      <h2>Ссылки</h2>

      <ul>

        

      </ul>

    </div>

    <!-- End Ссылки -->

    <!-- Start Meta -->

    <div>

      <h2>Meta</h2>

      <ul>

        <?php wp_register(); ?>

        <li>

          <?php wp_loginout(); ?>

        </li>

        

        <?php wp_meta(); ?>

      </ul>

    </div>

    <!-- End Meta -->

    <!-- Start Flickr Photostream -->

    <div class="widget_flickrrss">

      <h2 class="TabLink">Flickr PhotoStream</h2>

      <?php if (function_exists('get_flickrRSS')) { ?>

      <ul>

        <?php get_flickrRSS(8, "community", "london,people", "square", "<li>", "</li>", "34427469792@N01"); ?>

      </ul>

      <?php } ?>

    </div>

    <div class="clr"></div>

    <!-- End Flickr Photostream -->

  </div>

  <!-- End SideBar2 -->

<?php endif; ?>

</div>

<div class="SR">

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

  <!-- Start SideBar2 -->

  <div class="SRR">

    <!-- Start Найти -->

    <div class="Найти">

      <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

        <input type="text" name="s" class="keyword" />

        <div class="bt">

          <input name="submit" type="submit" class="search" title="Найти" alt="Найти" value="Найти" />

        </div>

      </form>

      <div class="clr"></div>

    </div>

    <!-- End Найти -->


    <!-- Start Рубрики -->

    <div>

      <h2>Рубрики</h2>

      <ul>

        <?php wp_list_cats('show_count=1'); ?>

      </ul>

    </div>

    <!-- End Рубрики -->

    <!-- Start Архивы -->

    <div>

      <h2>Архивы</h2>

      <ul>

        <?php wp_get_archives('type=monthly'); ?>

      </ul>

    </div>

    <!-- End Архивы -->

    <!-- Start Ссылки -->

    <div>

      <h2>Ссылки</h2>

      <ul>

        

      </ul>

    </div>

    <!-- End Ссылки -->

    <!-- Start Meta -->

    <div>

      <h2>Meta</h2>

      <ul>

        <?php wp_register(); ?>

        <li>

          <?php wp_loginout(); ?>

        </li>

        

        <?php wp_meta(); ?>

      </ul>

    </div>

    <!-- End Meta -->

    <!-- Start Flickr Photostream -->

    <div class="widget_flickrrss">

      <h2 class="TabLink">Flickr PhotoStream</h2>

      <?php if (function_exists('get_flickrRSS')) { ?>

      <ul>

        <?php get_flickrRSS(8, "community", "london,people", "square", "<li>", "</li>", "34427469792@N01"); ?>

      </ul>

      <?php } ?>

    </div>

    <div class="clr"></div>

    <!-- End Flickr Photostream -->

  </div>

  <!-- End SideBar2 -->

<?php endif; ?>

</div>

Пытался сделать так. Написал в function.php в регистрации сайдбара "3" вместо "2", добавил еще одну строчку с кодом сайдбара в sidebar.php. При этом третий сайдбар без проблем появился. После этого в arhive.php прописал следующий код:

if ( is_category('10') ) {
include  'get_sidebar(3)';
}  else {
include  'get_sidebar()'; 
} ?>

Не вышло, по прежнему отображается все 3 сайдбара.
Потом создал файл с отдельным сайдбаром и прописал такой код:

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

Тоже не работает.
Может быть, кто подскажет, почему?

Продублируйте файл sidebar.php и назовите дубль скажем "sidebar-forcat.php", это и будет вашим сайдбаром для категории.

Дальше читайте тут: http://codex.wordpress.org/Function_Reference/get_sidebar

Спасибо! Я сразу не догадался, ято нужно было этот код

    <?php
if ( is_category('10') ) :
get_sidebar ('cat');
  else:
get_sidebar () ;
endif;
 ?>

Вставлять в category.php, вставил туда и, да, все заработало!

Да, все именно так 🙂

Anonymous
Отправить
Ответ на: