ワードプレスでカテゴリーを利用する際、特にサイト内で扱うカテゴリーが多岐に渡る場合は、ページによってユーザー層も異なる可能性があるため、特定カテゴリーごとにデザインを変えた方が良い場合もあります。

今回は、カテゴリーごとに表示する内容を変える条件分岐についてご紹介します。

アーカイブ一覧ページの中で特定カテゴリーごとに条件分岐させる

はじめに、アーカイブページ(category.php等)で条件分岐を行う方法についてです。
個別ページ(single.php)での書き方は後述しています。

基本的な書き方

上記はカテゴリースラッグ(例:graphic)を利用した場合です。
カテゴリーのid番号を記載することでも同じ結果になります。

ただ、id番号は調べることが面倒な上に、後々見た時にも何のカテゴリーか判別することができないので、個人的にはスラッグ名で書く方が使いやすいと思っています。

複数のカテゴリーを列挙して表示する場合

複数のカテゴリーをまとめて記述することも可能です。

上記とは別に、「category-graphic」といった「category-スラッグ名(もしくはid番号)」のテンプレートファイルを作成しても、カテゴリーごとに表示を変えることも可能です。

ただ、不用意にテンプレートファイルを増やすと、後々内容を変更をする際に管理が面倒ですので、シンプルにまとめられるのであれば上記のコードの方が楽かなと思います。

親子カテゴリーを列挙して表示する場合

親子カテゴリーをまとめた状態で、カテゴリーごとに列挙させる場合は下記のように記述します。

ただし、この場合は後述の「子カテゴリーのテンプレートが無い場合、親カテゴリーのテンプレートを使用する」カスタマイズを適用させなければ、うまく動作しない場合があるので注意してください。

 

個別記事の中で特定カテゴリーごとに条件分岐させる

個別記事の中で特定カテゴリーごとに表示内容を変える場合でも、基本的にソースの書き方は同じですが、使用するテンプレートタグが異なります。

is_categoryとin_category

上記のアーカイブページの中では『is_category』を利用しましたが、個別ページの中では『in_category』を利用します。

1文字違うだけで正常に動作しないので注意してください。
『is』か『in』の違いを除けば、他の部分の書き方は同じです。

 

子カテゴリーのテンプレートが無い場合、親カテゴリーのテンプレートを使用する

ワードプレスではカテゴリーごとにテンプレートを分けることができますが、親子関係にあるカテゴリーでも別物として認識されます。

つまり、カテゴリーが多いサイトでは、親/子カテゴリーのテンプレートファイルを作成する必要がありますが、その量が多い場合にはあまり現実的な作業とは言えません。

そこで、子カテゴリーのテンプレートが無い場合は、親カテゴリーのものを適用させておくと、不用意にテンプレートファイルを増やす必要が無くなります。

以下のコードをfunctions.phpに追加します。

参考にさせて戴いたサイト:子カテゴリのアーカイブページを親カテゴリ用のテンプレートファイルで表示しよう

関連する記事

PAGE TOP

copyrights PRINT TABLE