【wordpress】カテゴリーごとに条件分岐して異なるテンプレートファイルを読み込ませる記述方法
2014 July 13
投稿一覧ページ(category.php)や詳細ページ(single.php)で条件分岐して、カテゴリーごとにそれぞれ異なるテンプレートファイルを読み込ませたい場合の記述例です。
投稿一覧ページ(category.php)でテンプレートファイルを分ける場合
category.php に下記を記述します。
<?php /* Template Name: category */ if ( in_category('カテゴリーID hoge が入ります') ) { include(TEMPLATEPATH . '/category-hoge.php'); } else if ( in_category('カテゴリーID piyo が入ります') ) { include(TEMPLATEPATH . '/category-piyo.php'); }else { include(TEMPLATEPATH . '/category-tama.php'); } ?>
上記は、
「投稿一覧ページにおいて、
もしカテゴリー:hoge の場合は category-hoge.php を読み込み、
もしカテゴリー:piyo の場合は category-piyo.php を読み込み、
それ以外の場合は single-tama.php を読み込みます」
の意味です。
もちろん、2パターンの場合は7,8行目の else if〜 の記述はなしで else〜 となります。
カテゴリーIDは、ダッシュボードで「カテゴリー/カテゴリー名/表示」したときのリンク先の末尾です。
パーマリンク設定によって、数字だったり文字列だったりします。
あとは通常通りcategory-hoge.php、category-piyo.php、single-tama.php をそれぞれ記述し、テンプレートディレクトリにアップロードします。
投稿詳細ページ(single.php)でテンプレートファイルを分ける場合
single.php に下記を記述します。(手順は上記 category.php の方法と同じです)
<?php /* Template Name: single */ if ( in_category('カテゴリーID hoge が入ります') ) { include(TEMPLATEPATH . '/single-hoge.php'); } else if ( in_category('カテゴリーID piyo が入ります') ) { include(TEMPLATEPATH . '/single-piyo.php'); }else { include(TEMPLATEPATH . '/single-tama.php'); } ?>
上記は、
「投稿詳細ページにおいて、
もしカテゴリー:hoge の場合は single-hoge.php を読み込み、
もしカテゴリー:piyo の場合はsingle-piyo.php を読み込み、
それ以外の場合は詳細ページで single-tama.php を読み込みます」
の意味です。
こちらも、あとは通常通りsingle-hoge.php、single-piyo.php、single-tama.php をそれぞれ記述し、テンプレートディレクトリにアップロードします。