WordPressの特定カテゴリーを除外するときの視点
トップページから除外したい感覚
WordPressでサイトを運営していると、「このカテゴリーはトップページに出したくない」という場面が意外と多く出てくる。
たとえば、内部向けのお知らせ、テスト投稿、アーカイブ的な過去記事など、存在はしているけれど積極的に見せたいわけではないコンテンツがそれにあたる。
こうした「見せたくない」という感覚は、単なる好みではなく、サイトの情報設計として正当な判断だと考えると興味深い。
トップページは訪問者が最初に目にする場所であり、そこに何を置くかはサイト全体の印象を左右する。特定のカテゴリーを除外したいという発想は、実はユーザー体験を意識した設計思考の入口でもある。
WordPress仕様と表示ロジック
WordPressのトップページは、デフォルトでは投稿の一覧を新着順に表示する仕組みになっている。
この表示を制御しているのが「クエリ」と呼ばれる仕組みであり、どの投稿をどの順番で取得するかをWordPressが自動的に判断している。
クエリとループの関係を整理する
WordPressの表示処理は、大きく「クエリ」と「ループ」という二つの概念で成り立っている。
クエリはデータベースへの問い合わせであり、「どの投稿を取ってくるか」を決める段階だ。ループはその結果を画面に出力する処理であり、取得した投稿を一件ずつ表示する役割を担っている。
特定のカテゴリーをトップページから除外したい場合、手を入れるべきはこの「クエリ」の段階になる。ループ側でいくら条件を書いても、すでにデータを取得した後では完全な除外にはならないケースがあるため、クエリ段階での制御が基本的な考え方となる。
WordPressにはpre_get_postsというフックが用意されており、クエリが実行される前に条件を追加・変更できる。このフックを使うことで、トップページのクエリに対してのみ「特定カテゴリーを除く」という条件を付け加えることが可能になる。

特定カテゴリー除外の実装パターン
特定のカテゴリーをトップページから除外する方法は、大きく分けてテーマ側で対応する方法とプラグインを使う方法の二つがある。
どちらを選ぶかは、サイトの規模や運用体制、技術的なリソースによって変わってくる。
テーマ側で手を入れる場合の考え方
テーマのfunctions.phpにpre_get_postsフックを記述するのが、最もシンプルな実装パターンだ。
コードの基本的な構造は、「メインクエリであること」「トップページであること」「管理画面ではないこと」という三つの条件を満たした場合にのみ、除外カテゴリーのIDを指定するという形になる。
注意したいのは、is_home()とis_front_page()の違いだ。WordPressでは「最新の投稿を表示」に設定している場合はis_home()が使われ、固定ページをトップに設定している場合は挙動が変わるため、サイトの設定に合わせた条件分岐が必要になる。
また、除外するカテゴリーのIDは数値で指定するのが基本だが、スラッグを使った指定方法もある。IDは管理画面のカテゴリー一覧URLのパラメータから確認できるため、実装前に必ず確認しておくことを勧める。
- 除外カテゴリーIDを配列で複数指定できる
- マイナス符号を付けたIDを
catパラメータに渡す方法もある tax_queryを使うとより柔軟な条件指定が可能になる- 子カテゴリーも含めて除外したい場合は追加の対応が必要になる
テーマを更新するたびにfunctions.phpの変更が失われるリスクがあるため、子テーマを使うか、プラグインとして独立させる形で管理するのが運用上の定石と言える。
SEOとユーザー体験への影響
特定カテゴリーをトップページから除外することは、SEOとユーザー体験の両面に影響を与える。
除外すること自体が良い悪いではなく、何を目的として除外するかによって評価が変わってくる、という視点が重要だ。
「見せないこと」が生むノイズ削減
トップページに関係性の薄いコンテンツが混在していると、訪問者は「このサイトが何を提供しているのか」を把握しにくくなる。
これはユーザー体験の問題であると同時に、検索エンジンがサイトのテーマを認識する際にも影響する可能性がある。特定カテゴリーを除外することで、トップページに表示されるコンテンツの一貫性が高まり、サイトのテーマ性が明確になるという見方もできる。
一方で、除外したカテゴリーのページが検索エンジンにインデックスされなくなるわけではないため、個別記事のSEO評価には直接影響しない点も押さえておきたい。

運用と情報設計のバランス
特定カテゴリーの除外を実装した後、運用フェーズで意外と見落とされがちなのが「誰がその設定を把握しているか」という問題だ。
コードで制御している場合、担当者が変わったときに「なぜこのカテゴリーがトップに出ないのか」が分からなくなるケースがある。
設定の意図と方法をドキュメントとして残しておくことは、技術的な実装と同じくらい重要な運用作業だと考えると、情報設計の視点が広がる。
また、除外するカテゴリーが増えていくにつれて、設定の複雑さも増していく。最初は一つの除外設定だったものが、気づけば複数の条件が絡み合い、意図しない表示になっているというケースも珍しくない。
定期的に設定を見直し、「本当に今もこの除外が必要か」を確認するサイクルを持つことが、長期的な運用の安定につながる。
プラグイン活用とAI時代の整理術
コードを書かずにカテゴリー除外を実現したい場合、プラグインという選択肢がある。
「WP Home Page Latest Posts」や「Advanced Custom Fields」を組み合わせた方法など、さまざまなアプローチが存在するが、専用の除外設定ができるプラグインも複数公開されている。
自動化に任せる範囲をどこに置くか
AI技術の進化により、WordPressの設定や管理を補助するツールが増えてきている。
コード生成AIを使えば、pre_get_postsのコードを自然言語で説明するだけで生成してもらえる時代になっており、技術的なハードルは以前より確実に下がっている。
ただし、自動生成されたコードをそのまま本番環境に適用するのはリスクがある。生成されたコードの意味を理解した上で適用するか、ステージング環境でテストしてから反映するというプロセスは、AI活用時代においても変わらない基本姿勢だと言える。
プラグインにせよコードにせよ、「自動化できること」と「自動化すべきこと」を分けて考える視点が、運用の質を左右する。
- コード生成AIは実装の補助として活用する
- 生成されたコードは必ず内容を確認してから使う
- ステージング環境でのテストを省略しない
- 設定変更の記録を残す習慣を持つ
カテゴリー設計を見直す契機として
特定カテゴリーをトップページから除外したいという課題に向き合うとき、それは同時にサイト全体のカテゴリー設計を見直す良い機会でもある。
「除外したい」という感覚が生まれた背景には、カテゴリーの粒度が合っていない、あるいは当初の設計から運用が乖離してきているというサインが隠れていることが多い。
除外ではなく再配置という発想
除外という操作は、問題を「見えなくする」ことで解決しているとも言える。
しかし、本質的な課題がカテゴリー設計の歪みにある場合、除外で対処し続けることで設定が複雑化し、後の運用コストが上がっていく可能性がある。「このカテゴリーはそもそも必要か」「別のカテゴリーに統合できないか」「タグで管理すべき情報ではないか」という問いを立てることで、除外ではなく再配置という解決策が見えてくることがある。
カテゴリーを整理し直すことで、除外設定が不要になるケースも少なくない。
WordPressのカテゴリーは後から変更できる柔軟性があるため、現状の設計に縛られすぎず、定期的に構造を見直す姿勢が情報設計の質を高めていく。
最後に
WordPress 特定のカテゴリーをトップページから除外するという操作は、技術的には比較的シンプルな実装で実現できる。
ただ、その背景にある「なぜ除外したいのか」という問いを丁寧に掘り下げることで、単なる設定変更以上の気づきが得られることがある。
トップページの表示設計は、サイトが訪問者に何を伝えたいかの表明でもある。除外という手段を選ぶ前に、情報設計の全体像を一度俯瞰してみることが、長期的に見て有効な選択につながるかもしれない。
技術とデザインと運用、この三つのバランスを意識しながら設定に向き合うことが、WordPressサイトの品質を継続的に高めていく基本姿勢だと考えると、今回のテーマはその入口として十分に示唆に富んでいる。
【参照・引用元】
- pre_get_posts – Hook | Developer.WordPress.org
- is_home()とis_front_page()の違いと使い方 | オレインデザイン
- WordPressで「カテゴリーID」を調べる方法 – OPENCAGE WordPressテーマ
- WordPressのカテゴリーとタグの違いと使い分け【間違いがち】 – ブログノオト
- WordPressの子テーマとは?使用方法と作り方を初心者向けに解説
- WordPress向けAI自動化ツール ベスト9(専門家テスト済み、2026年)
- WordPress向けAIウェブサイトビルダー:テスト済みの7つのツール(2026年)
- WordPressで特定のカテゴリーを記事一覧に表示させない | Kamiki
- WordPressのトップページで特定カテゴリを除外、限定などフィルタして表示するカスタマイズ | virtualiment

