wordpress3.5に関して質問です。

テーマはtwentyelevenです。
カテゴリー別にsidebarの表示を変えたいと思い、category.phpの最後(sidebarを読み込む箇所)に
下記のスクリプトを追加しました。

ーーーーーーーーーーーーーーーーーーーーーー
<?php
if( in_category('abc') ) {get_sidebar('11');}
elseif( in_category('aaabbbccc') ) {get_sidebar('12');}
elseif( in_category('ghj') ) {get_sidebar('13');}
else {
get_sidebar();
}
?>

ーーーーーーーーーーーーーーーーーーーーーーーーーーーー

するとカテゴリー
aaabbbccc
のみ表示できません。
if文の記述が間違っているのでしょうか?

想定される原因と対応策を教えてください。

回答の条件
  • URL必須
  • 1人5回まで
  • 13歳以上
  • 登録:2013/03/10 12:40:40
  • 終了:2013/03/15 10:37:47

ベストアンサー

id:rouge_2008 No.1

rouge_2008回答回数594ベストアンサー獲得回数3512013/03/10 15:56:13

ポイント180pt

カテゴリー別に異なるsidebarを読み込む場合は、「in_category()」ではなく「is_category()」を使用します。

<?php
if( is_category('abc') ) {
	get_sidebar('11');
} elseif( is_category('aaabbbccc') ) {
	get_sidebar('12');
} elseif( is_category('ghj') ) {
	get_sidebar('13');
} else {
	get_sidebar();
}
?>


・条件分岐タグ/カテゴリーページ
http://wpdocs.sourceforge.jp/Conditional_Tags#.E3.82.AB.E3.83.86.E3.82.B4.E3.83.AA.E3.83.BC.E3.83.9A.E3.83.BC.E3.82.B8

カテゴリーページ
is_category()
あるカテゴリーのアーカイブページが表示されている場合。
is_category( '9' )
カテゴリーID 9のアーカイブページが表示されている場合。
is_category( 'Stinky Cheeses' )
"Stinky Cheeses"というカテゴリーのアーカイブページが表示されている場合。
is_category( 'blue-cheese' )
"blue-cheese"というカテゴリースラッグのアーカイブページが表示されている場合。
is_category( array( 9, 'blue-cheese', 'Stinky Cheeses' ) )
投稿のカテゴリーが term_ID 9、スラッグが "blue-cheese" の場合、カテゴリー名が "Stinky Cheeses" のいずれかにあてはまる場合、真を返す。



※「in_category()」は、投稿が指定したカテゴリーに含まれるかどうかを判定します。
「in_category('abc')」とした場合、その投稿がカテゴリー「abc」に属する場合に「true」になります。
質問文にあるようにカテゴリーページ「category.php」で使用した場合、「abc」カテゴリーのページにアクセスした際は、すべての投稿が「abc」カテゴリーに属しますので、最初の条件が反映されて正しく動作しているように見えると思いますが、別のカテゴリーページにアクセスした際に、最初の投稿が「abc」にも属している場合、最初の条件に一致して希望の動作と異なる表示になる場合もあります。


※「is_category()」は特定のカテゴリーの表示を変更する場合に「category.php」等に記述、「in_category()」は、特定の投稿に対して表示を変更したい場合にインデックスページ、あるはカテゴリーページなどのループ内、または個別投稿ページに記述して利用するといいです。

・テンプレートタグ/in category
http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/in_category

id:mkusume

いつもご丁寧な回答ありがとうございます。
確認してみます。

2013/03/10 18:00:45

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません