【WP】single.phpをカテゴリ毎に分ける方法

カテゴリーページや固定ページなどは、テンプレート階層に基づき、スラッグやidでテンプレートファイルを振り分けることが出来ます。
例:page-{slug}.php、category-{id}.php 等
しかし、single.phpは投稿タイプごとの振り分けは可能ですが、カテゴリー別にスラッグやidでテンプレートファイルを振り分けることは出来ません。
そこで、カテゴリ毎にsingle.phpの表示を分けるには、条件分岐を利用します。
用意するファイル
single.php
single-a.php (任意のカテゴリーa)
single-b.php (任意のカテゴリーb)
single-default.php (カテゴリーa、カテゴリーbどちらにも属さない場合)
single.php に条件分岐を記述
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php get_header(); ?> <?php if (in_category('a')) { include(TEMPLATEPATH.'/single-a.php'); } elseif ( in_category('b')) { include(TEMPLATEPATH.'/single-b.php'); } else { include(TEMPLATEPATH.'/single-default.php'); } ?> <?php get_footer(); ?> |
複数のカテゴリーに同じテンプレートファイルを適用する場合
|
1 2 3 4 5 6 7 8 9 |
<?php if (in_category(array('a','c'))) { include(TEMPLATEPATH.'/single-a.php'); } elseif ( in_category('b')) { include(TEMPLATEPATH.'/single-b.php'); } else { include(TEMPLATEPATH.'/single-default.php'); } ?> |
![MARKLEAPS[マークリープス]](https://markleaps.com/blog/wp-content/themes/mkl/images/00_logo.png)

![[WordPress] プラグイン「WP ALL Import」で既存記事を一括更新(CSV上書き)する方法](https://markleaps.com/blog/wp-content/uploads/2025/10/wp-all-import_update-500x254.jpg)
![[WordPress] CSVで記事を一括インポート-プラグイン「WP ALL Import」の使い方](https://markleaps.com/blog/wp-content/uploads/2025/10/wp-all-import-500x254.jpg)
![[WordPress] 記事への画像挿入方法](https://markleaps.com/blog/wp-content/uploads/2025/10/pic_manual_mainimg-500x254.png)
![[WordPress] カテゴリーとタグの違いと設定方法](https://markleaps.com/blog/wp-content/uploads/2025/10/wp-category-tag-500x254.jpg)