WordPressの投稿で、条件に応じて適用するテンプレートファイルを変更する方法をご紹介いたします。
例えば、特定のカテゴリーが指定されている場合のみ、single.phpではなく他のテンプレートファイルを適用したい、といった場合に活用できます。
特定のカテゴリーが指定されている投稿で別途作成したテンプレートファイルを適用する方法
functions.phpに以下のようなコードを追加することで、特定カテゴリーの投稿にのみ、別のテンプレートファイルを適用できます。
function single_cat_include($template) { if (is_single() && in_category('カテゴリー名')) { $template = dirname(__FILE__) . '/templatename.php'; } return $template; } add_filter('template_include', 'single_cat_include', 999);
例えば、newsというカテゴリーが指定されている場合にsingle-news.phpを適用したい時は、以下のように記述します。
function single_cat_include($template) { if (is_single() && in_category('news')) { $template = dirname(__FILE__) . '/single-news.php'; } return $template; } add_filter('template_include', 'single_cat_include', 999);
あとがき
上記ではカテゴリーを例に説明しましたが、条件を変えることで色んなケースに応用できますね。
同じ投稿タイプ内でテンプレートファイルを分けたいという時は、ぜひ参考にしていただければと思います。