かわたま.net

Enjoy Creative! かわたまのwebメモ

【wordpress】カテゴリーごとに条件分岐して異なるテンプレートファイルを読み込ませる記述方法

2014 July 13

Tag:

投稿一覧ページ(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 をそれぞれ記述し、テンプレートディレクトリにアップロードします。