WordPressで特定のカテゴリーの投稿ページのみカスタマイズする方法

WordPressで特定のカテゴリーの投稿ページのみカスタマイズする方法

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: カスタムテンプレートを使用する

特定のカテゴリー専用のテンプレートファイルを作成することで、完全にカスタマイズすることも可能です。

手順

  1. single-example-category.php というファイルを作成(example-category はカテゴリーのスラッグ)。
  2. single.php をコピーして single-example-category.php にペースト。
  3. カスタマイズを single-example-category.php 内に追加。

WordPressの自動適用ルール

  • single-{category-slug}.php というファイル名を使用すると、そのカテゴリーの記事で自動的に適用されます。

まとめ

方法メリットデメリット
single.php に条件分岐シンプルで導入が簡単直接編集が必要
functions.php のフィルターテーマファイルを変更せずに適用可能すべての投稿に影響する可能性あり
カスタムテンプレート完全にカスタマイズ可能テンプレートの管理が増える

サイトの運営方針に合わせて最適な方法を選びましょう!