【WordPress】個別投稿ページで特定カテゴリーのみ要素を表示・非表示にする方法

【WordPress】個別投稿ページで特定カテゴリーのみ要素を表示・非表示にする方法 WordPress

WordPressサイトを運営していると、あるカテゴリーの記事だけ表示内容やレイアウトを変えたいというケースが出てきます。この記事では、個別投稿ページ(single.php)で特定のカテゴリーに応じて要素を表示・非表示にするための実装方法を3つのアプローチで紹介します。

スポンサーリンク

1. PHPでカテゴリーを条件分岐して表示を切り替える

single.php内でin_category()関数を使い、特定カテゴリーの記事にだけ異なる処理を行うことが可能です。以下は、特定カテゴリーに属する投稿の場合だけ本文の代わりにメッセージを表示する例です。

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

  <?php if ( in_category( 'news' ) ) : ?>
    <p>この内容は非表示になっています。</p>
  <?php else : ?>
    <div class="entry-content">
      <?php the_content(); ?>
    </div>
  <?php endif; ?>

<?php endwhile; endif; ?>

in_category()にはカテゴリースラッグ、ID、または配列を渡すことができます。複数カテゴリに対応したい場合は、in_category( array( 'news', 'column' ) )のように記述します。

2. 子テーマでカテゴリー専用テンプレートを作成する

カテゴリーごとに異なるテンプレートでデザインを完全に分けたい場合は、子テーマに専用テンプレートファイルを作成するのが最も柔軟です。

たとえば、newsというスラッグのカテゴリー用に以下のようなファイルを作成します:

single-news.php

このファイルを子テーマのルートに配置すれば、newsカテゴリーの投稿だけがこのテンプレートを使用して表示されます。カテゴリーごとのデザイン変更や表示制御に最適な方法です。

3. CSSで特定カテゴリーにだけスタイルを適用する

WordPressでは、<body>タグに自動でカテゴリースラッグ付きのクラスが付与されます。これを活用して、CSSで特定のカテゴリーの投稿だけにスタイルを変更することができます。

body.category-news .target-element {
  display: none;
}

ここでは、newsカテゴリーに属する投稿で、.target-elementというクラスを持つ要素を非表示にしています。PHPを触らずに実装できるため、デザイン面の制御に便利です。

よくある質問(FAQ)

Q. 固定ページ内で同じカテゴリの関連記事を表示するにはどうすればよいですか?
A. 固定ページ(page)自体にカテゴリはありませんが、WP_Queryで関連する投稿カテゴリを指定して記事を取得できます:new WP_Query(["category_name" => "target-cat", "posts_per_page" => 5]);。page.phpまたは固定ページテンプレートに追加します。
Q. カスタム投稿タイプの同一タクソノミーの記事のみ表示するにはどうすればよいですか?
A. tax_queryを使います:new WP_Query(["post_type" => "custom_post", "tax_query" => [["taxonomy" => "custom_tax", "field" => "slug", "terms" => "term-slug"]]]);でカスタムタクソノミーで絞り込めます。
Q. 条件ごとに表示・非表示を切り替えるにはWordPressのどの関数を使えばよいですか?
A. is_single()・is_page()・is_category()・is_archive()・is_front_page()などの条件タグを使います。カスタム投稿タイプにはis_singular(“post_type”)・is_post_type_archive(“post_type”)を使います。

まとめ

特定のカテゴリーの記事だけ表示内容を変えたい場合、WordPressでは以下の3つの方法が使えます。

  • PHPによるカテゴリー判定で要素の表示を制御
  • 子テーマにカテゴリー専用テンプレートを用意
  • CSSで特定カテゴリーのみスタイルを変更

要件や目的に応じてこれらの手法を使い分けることで、より柔軟で管理しやすいカスタマイズが可能になります。複数の方法を組み合わせて、最適な構成を目指しましょう。