Здравствуйте, хочу сделать для одной из рубрик отдельный сайдбр. Нашел в интернете один вариант и сделал следующее.
Имею код в 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
Спасибо! Я сразу не догадался, ято нужно было этот код
Вставлять в category.php, вставил туда и, да, все заработало!
Да, все именно так 🙂