WordPressで特定のカテゴリーの投稿ページだけデザインや機能を変更したい場合、テーマのテンプレートを編集したり、条件分岐を使用することで実現できます。本記事では、具体的な方法を解説します。
方法1: single.php に条件分岐を追加する
single.php は投稿ページ(シングルページ)のテンプレートです。ここに条件分岐を追加すれば、特定のカテゴリーの記事にのみカスタマイズを適用できます。
コード例
以下のコードを single.php 内のカスタマイズしたい部分に追加します。
<?php if ( in_category( 'example-category' ) ) : ?>
<div class="custom-content">
<p>このカテゴリー専用のカスタムデザイン</p>
</div>
<?php endif; ?>
解説
in_category( 'example-category' )は、記事がexample-category(スラッグ)に属しているかを判定します。- 属していれば、特定のデザインや機能を追加できます。
方法2: functions.php にフィルターフックを追加する
テーマのテンプレートファイルを直接編集せずにカスタマイズしたい場合は、functions.php にフィルターを追加する方法が便利です。
コード例
function customize_category_specific_content( $content ) {
if ( is_single() && in_category( 'example-category' ) ) {
$custom_content = '<div class="custom-message">このカテゴリー専用のメッセージ</div>';
$content .= $custom_content; // 記事の末尾に追加
}
return $content;
}
add_filter( 'the_content', 'customize_category_specific_content' );
解説
is_single()で投稿ページかどうかを判定。in_category( 'example-category' )で特定のカテゴリーを判定。the_contentフィルターを利用して記事の末尾にカスタムコンテンツを追加。
方法3: カスタムテンプレートを使用する
特定のカテゴリー専用のテンプレートファイルを作成することで、完全にカスタマイズすることも可能です。
手順
single-example-category.phpというファイルを作成(example-categoryはカテゴリーのスラッグ)。single.phpをコピーしてsingle-example-category.phpにペースト。- カスタマイズを
single-example-category.php内に追加。
WordPressの自動適用ルール
single-{category-slug}.phpというファイル名を使用すると、そのカテゴリーの記事で自動的に適用されます。
まとめ
| 方法 | メリット | デメリット |
|---|---|---|
single.php に条件分岐 | シンプルで導入が簡単 | 直接編集が必要 |
functions.php のフィルター | テーマファイルを変更せずに適用可能 | すべての投稿に影響する可能性あり |
| カスタムテンプレート | 完全にカスタマイズ可能 | テンプレートの管理が増える |
サイトの運営方針に合わせて最適な方法を選びましょう!

お問い合わせ