in_categoryで特定のカテゴリーに属する投稿に同じ内容を表示させる|WordPress
※当サイトはWeb広告を利用していますWordPressのin_categoryを使用すれば、
・「マラソン」カテゴリーに属する投稿(記事)すべてに、ランニングシューズの広告を表示させる
・「イベント」カテゴリーに属する投稿(記事)すべてに、共通の申し込みボタンを表示させる
といったことができます。
これなら、記事毎にコードを入れるより、効率的ですよね。
今回は、in_categoryの基本的な使い方、条件分岐で記述する方法を紹介します。
最もお手軽な方法
single.phpなどの任意の場所に以下のコードを記述します。
<?php if (in_category('event')) { ?> ここを表示 <?php } ?>
eventのところに、表示させたいカテゴリーのスラッグ名が入ります。上記は、イベントカテゴリー(スラッグ名がevent)に属する投稿の場合「ここを表示」のところに記述した内容を表示できます。
<?php if (in_category('1')) { ?> ここを表示 <?php } ?>
スラッグ名ではなく、カテゴリー番号での指定も可能です。カテゴリー番号を調べる方法は「WordPressで番号(ID)を調べる(投稿・固定ページ・カテゴリー・タグ・カスタム投稿タイプ)」を参考にしてください。
複数のカテゴリーで表示させたい
複数のカテゴリーを指定することもできます。
<?php if (in_category(array('event','news'))) { ?> ここを表示 <?php } ?>
上記はカテゴリーのスラッグ名が、eventとnewsに属する投稿の場合「ここを表示」のところに記述した内容を表示できます。
スポンサードリンク
条件分岐
カテゴリーがAの場合はAの内容を、Bの場合はBの内容を、それ以外はCの内容を、といった具合に条件分岐をさせることができます。
<?php if(in_category('event')): ?> ここを表示(イベント) <?php elseif(in_category('news')): ?> ここを表示(ニュース) <?php else: ?> ここを表示(その他) <?php endif; ?>
カテゴリースラッグが、eventにもnewsにも該当しない場合は「ここを表示(その他)」が表示されます。
<?php if(in_category('event')): ?> ここを表示(イベント) <?php elseif(in_category('news')): ?> ここを表示(ニュース) <?php endif; ?>
カテゴリースラッグが、eventにもnewsにも該当しない場合は、何も表示されません。