各カテゴリーとそのカテゴリーに属するページのサイドバーを変更したかったのでその方法をメモ

例えば
サンプル1(sam1:スラッグ名)
サンプル2(sam2:スラッグ名)
サンプル3(sam3:スラッグ名)

という親カテゴリーがあり、それに属する子カテゴリーや投稿記事のページのサイドバーを
各親カテゴリーごとにサイドバーを変更するという感じです。

カテゴリーごとにサイドバーを作成

まず、sidebar.phpをもとに
sidebar-sample1.php
sidebar-sample2.php
sidebar-sample3.php
※sample1とかの部分は任意の名前
といったファイルを作りアップします。

カテゴリーごとにサイドバーを読み込ませる

次にサイドバーを読み込ませたい部分に

<?php
if( in_category('sam1') ) {get_sidebar('sample1');}
elseif( in_category('sam2') ) {get_sidebar('sample2');}
elseif( in_category('sam3') ) {get_sidebar('sample3');}
else {
  get_sidebar();
}
?>

のように条件分岐させて読み込ませればOK

in_category()
とは「現在の投稿がカテゴリーに属する場合にtrueを返す」という条件分岐タグで、

in_category('カテゴリースラッグ名もしくはID')

といった使い方をします。ほかに配列なども使えるようなのですが、
詳しくは
> テンプレートタグ/in category
に載っています。

また、
get_sidebar(‘○○○’)
の部分の○○○の部分には
sidebar-○○○.phpの○○○の部分の名前を記述します。

番外!個別ページごとにサイドバーを変更

番外として個別ページごとにサイドバーを変更するときは
上記のin_category()は使えないので、代わりに
is_pageを使用します。
使い方はほとんど同じで、
page.phpの中のサイドバーを表示する部分に

<?php
if( is_page('ページIDもしくはスラッグ名') ) {get_sidebar('sample1');}
elseif( is_page('ページIDもしくはスラッグ名') ) {get_sidebar('sample2');}
elseif( is_page('ページIDもしくはスラッグ名') ) {get_sidebar('sample3');}
else {
  get_sidebar();
}
?>

と記述すればOK