WordPressで投稿から特定のカテゴリを除外する方法

WordPressで投稿から特定のカテゴリを除外する方法

WordPressサイトで、特定のカテゴリの投稿を一覧から除外したい場合があります。たとえば、「未分類」カテゴリーを表示させたくない場合や、特定のカテゴリだけを非表示にしたいケースです。この記事では、WP_Query を使った簡単な方法をご紹介します。

特定のカテゴリを除外する基本的な方法

WP_Query を使用することで、簡単に特定のカテゴリを除外できます。以下はその基本的なコード例です。

PHP
$args = array(
    'post_type' => 'post', // 投稿タイプを指定(デフォルト投稿)
    'posts_per_page' => 10, // 表示する投稿数
    'tax_query' => array(
        array(
            'taxonomy' => 'category', // タクソノミーを指定(カテゴリーの場合は 'category')
            'field' => 'slug', // スラッグで指定
            'terms' => array('exclude-category-slug'), // 除外したいカテゴリのスラッグ
            'operator' => 'NOT IN' // 除外条件
        )
    )
);

$query = new WP_Query($args);
  • taxonomy
    'category' を指定して、カテゴリーに関連した投稿を操作します。
  • terms
    除外するカテゴリのスラッグ(例: 'exclude-category-slug')を記載します。
  • operator
    NOT IN を指定すると、そのカテゴリに属する投稿を除外します。

コードの利用例

このコードをテンプレートファイルに追加して利用します。以下は、投稿一覧を表示する際に特定のカテゴリを除外する例です。

PHP
<?php
$args = array(
    'post_type' => 'post',
    'posts_per_page' => 5,
    'tax_query' => array(
        array(
            'taxonomy' => 'category',
            'field' => 'slug',
            'terms' => array('news', 'events'), // 除外したいカテゴリのスラッグ
            'operator' => 'NOT IN'
        )
    )
);

$query = new WP_Query($args);

if ($query->have_posts()) :
    while ($query->have_posts()) : $query->the_post();
        ?>
        <h2><?php the_title(); ?></h2>
        <p><?php the_excerpt(); ?></p>
        <?php
    endwhile;
    wp_reset_postdata();
else :
    echo '<p>投稿がありません。</p>';
endif;
?>

上記コードでは、newsevents カテゴリに属する投稿が除外されます。

注意点

  1. 複数のカテゴリを除外する場合
    • terms に配列で複数のスラッグを渡せば、複数カテゴリの投稿を除外できます。phpコードをコピーする'terms' => array('category-slug1', 'category-slug2'),
  2. 管理画面でスラッグを確認する方法
    除外したいカテゴリのスラッグは、管理画面の「投稿 > カテゴリ」から確認できます。
  3. デフォルトクエリの変更について
    上記のコードはカスタムクエリですが、テーマやプラグインの影響を受ける場合は、pre_get_posts フィルターを利用してデフォルトクエリを変更することもできます。

まとめ

WP_Query を活用すれば、特定のカテゴリを簡単に除外できます。カテゴリスラッグを正確に指定することで、サイトの投稿一覧を思い通りにカスタマイズできます。ぜひ試してみてください!

制作のご相談・ご依頼はこちらから!

Author

WARACRO(ワラクロ)

2018年に起業し、Webデザイナー・WebディレクターとしてWordPress案件を中心にWeb制作のお仕事をしています。
このブログでは、Webサイト制作に関する情報をお届けしています。

WordPress学習におすすめの書籍

Amazonの読み放題サービスKindle Unlimited無料体験キャンペーン実施中!

Amazon Kindle Unlimited 公式
Webデザイン学習におすすめの講座
To Top