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 のフィルター | テーマファイルを変更せずに適用可能 | すべての投稿に影響する可能性あり |
カスタムテンプレート | 完全にカスタマイズ可能 | テンプレートの管理が増える |
サイトの運営方針に合わせて最適な方法を選びましょう!