[wordpress] 複数のサイドバーを使用する

カテゴリー毎、またはページ毎に、サイドバーを変えたい場合のメモです。

functions.phpに追加

[php]
function twentyten_widgets_init() {
// Area 1, located at the top of the sidebar.
register_sidebar( array(
‘name’ => __( ‘sidebar’),
‘id’ => ‘primary-widget-area’,
‘description’ => __(‘サイドバー(標準)’),
‘before_widget’ => ‘<li id="%1$s" class="widget-container %2$s">’,
‘after_widget’ => ‘</li>’,
‘before_title’ => ‘<h3 class="widget-title">’,
‘after_title’ => ‘</h3>’,
) );

// 追加する sidebar.
register_sidebar( array(
‘name’ => __(‘sidebar-2’),
‘id’ => ‘primary-widget-area’,
‘description’ => __(‘サイドバー(名前をつける)’),
‘before_widget’ => ‘<li id="%1$s" class="widget-container %2$s">’,
‘after_widget’ => ‘</li>’,
‘before_title’ => ‘<h3 class="widget-title">’,
‘after_title’ => ‘</h3>’,
) );
}
[/php]

sidebar.php (カテゴリー毎にサイドバーを変える場合の条件分岐)

[php]
<div id="primary">

<!–widget start–>
<div class="widget-area">
<?php if (in_category(‘3’) || in_category(‘4’) || in_category(‘5’)): ?>

<?php if ( ! dynamic_sidebar(‘sidebar-2’) ) : ?>
<?php endif; ?>

<?php else: ?>
<?php if ( ! dynamic_sidebar(‘sidebar’) ) : ?>
<?php endif; ?>

<?php endif; ?>
</div>
<!–widget end–>

</div>
[/php]