説明

よくあるテーマの、サイドカラムはウィジェットsidebar.phpで表示するのだが、通常はこの1種類しか用意されていないため、たとえば、投稿ページ(single.php)と固定ページ(page.php)でサイドカラムの表示を変えたいときには、オリジナルのsidebarを追加する必要がある。

ソース

1)固定ページのサイドバーをウィジェット宣言する

// 固定ページ用右側サイドバー
register_sidebar( array(
‘name’ => __( ‘固定ページ(右サイド)‘, ‘hogehoge‘ ),
‘id’ => ‘page‘,
‘description’ => __( ‘固定ページ右側コンテンツに表示させる内容を選択します。‘, ‘hogehoge‘ ),
‘before_widget’ => ”,
‘after_widget’ => ”,
‘before_title’ => ”,
‘after_title’ => ”,
) );

hogehoge“部には、使用しているテーマ名を記述

2)sidebar-page.phpを作成する

ここで追加するsidebar.phpには名前付規則がある。この例のid=page部をsidebar-page.phpとハイフンで区切ったphpファイルとする。ファイルは、function.phpと同じディレクトリにアップ。

<?php
/**
* The template for displaying all pages.
*
* @package WordPress
* @subpackage hogehoge
* @since hogehoge 1.0
*/
?>
<?php if ( is_active_sidebar( ‘page‘ ) ) : ?>
<div>
<?php dynamic_sidebar( ‘page‘ ); ?>
</div>
<?php endif; ?>

3)固定ページpage.php内から追加したsidebar-page.phpを呼び出す

get_sidebar()で、sidebar.phpを呼び出しているので、引数に追加したロジックのidを引き渡す。ここでは”page“が引数となる。引数無しの場合はデフォルトのsidebar.phpが呼び出される。

<?php get_sidebar( ‘page‘ ); ?>

備考

この方法で、サイドバーは追加することができる。各ページのサイドカラムの表示を変えたいときこの方法を流用する。