【WordPress】特定のカテゴリを除外した記事一覧を表示する方法

WordPressを使ってブログを運営していると、特定のカテゴリの投稿を除外して一覧表示したい場面があります。例えば、特定のイベント情報を掲載するページで、過去のイベント記事を除外して表示する場合などが挙げられます。WordPressでは、WP_Queryを利用することで、簡単にこのようなカスタムクエリを作成することができます。

WP_Queryを使ったカスタムクエリ

WP_Queryを使用して特定のカテゴリを除外して投稿を取得します。

<?php
$excluded_category = 'uncategorized'; // 除外するカテゴリのスラッグ

$args = array(
    'post_type' => 'post', // 投稿タイプを指定します。例えば、'post' は通常の投稿です。
    'posts_per_page' => -1, // 表示する投稿数。-1 はすべての投稿を表示します。
    'category_name' => '-' . $excluded_category, // 除外するカテゴリを指定します。ここで '-' を使っています。
);

$query = new WP_Query( $args );

if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        // ここで投稿のタイトルなどを表示します。
        ?>
        <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
        <?php
    }
} else {
    // 投稿が見つからなかった場合の処理を記述します。
    echo '投稿はありません。';
}

// クエリのリセット
wp_reset_postdata();
?>

このカスタムクエリをテーマファイル(例えば、index.phpやpage.phpなど)に組み込むことで、特定の条件で記事を一覧表示するページを作成することができます。ブログのテーマや目的に合わせて、さまざまなカスタマイズを行ってください。