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

公開日:2013年11月5日

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

functions.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>',
	) );
}

sidebar.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>