WordPress のホームページがごちゃごちゃしていませんか?デフォルトでは、WordPress はすべてのカテゴリの投稿を表示するため、優れたコンテンツが埋もれてしまい、訪問者にとって混乱を招く可能性があります。
管理カテゴリ、会員限定コンテンツ、または単にフロントページに表示したくないトピックがある場合、これは実際の問題となる可能性があります。
幸いなことに、簡単に制御を取り戻すことができます。特定のカテゴリを除外することで、ユーザーを目的のコンテンツに誘導する、よりクリーンで戦略的なホームページを作成できます。
この記事では、WordPressのホームページからカテゴリを簡単に除外する2つの最良の方法をご紹介します。

WordPressホームページからカテゴリを除外する理由
WordPressでは、コンテンツをカテゴリとタグに分類できます。さて、通常のブログエントリの一部ではない投稿にカテゴリを使用したい場合があります。
デフォルトでは、WordPressはホームページやアーカイブから特定のカテゴリの投稿を非表示にすることを許可していません。これにより、ホームページに不要な投稿が表示されることになります。
それでは、WordPressのホームページから特定のカテゴリを簡単に除外する方法を見ていきましょう。2つの異なる方法を紹介しますので、ご自身のニーズに最適な方を選択してください。
方法1:プラグインを使用してWordPressからカテゴリを除外する
まず、Ultimate Category Excluder プラグインをインストールして有効化する必要があります。詳細については、WordPress プラグインのインストール方法のガイドに従ってください。
有効化したら、設定 » カテゴリ除外ページに移動する必要があります。そこには、WordPressブログで利用可能なすべてのカテゴリが表示されます。

ここから、「フロントページから除外」列の下で1つまたは複数のカテゴリにチェックを入れるだけです。
必要であれば、RSSフィード、アーカイブ、またはWordPress検索からもカテゴリを除外できます。

これらの設定を保存するには、「更新」ボタンをクリックすることを忘れないでください。
これで、ウェブサイトにアクセスして、選択したカテゴリの投稿がフロントページから除外されていることを確認できます。
方法2:コードを使用してWordPressホームページからカテゴリを除外する
この方法では、WordPressファイルにコードを追加する必要があります。これを行ったことがない場合は、WordPressにコードスニペットをコピー&ペーストする方法に関するガイドをご覧ください。
以下のコードを、テーマのfunctions.phpファイル、サイト固有のプラグイン、またはコードスニペットプラグインに追加する必要があります。
function exclude_category_home( $query ) {
if ( $query->is_home ) {
$query->set( 'cat', '-5' );
}
return $query;
}
add_filter( 'pre_get_posts', 'exclude_category_home' );
ID (-5) を実際のカテゴリ ID に置き換えるのを忘れないでください。これにより、この ID に一致するカテゴリに属するすべてのブログ投稿がホームページから非表示になります。
注意: カテゴリIDの前にマイナス (-) 記号を付けることを確認してください。
カテゴリIDの見つけ方がわからないですか?WordPressでカテゴリIDを見つける方法に関するガイドをご覧ください。
このコードをWordPressに追加する最も安全で簡単な方法は、WPCodeプラグインを使用することです。これにより、WordPressファイルを直接編集せずにカスタムコードを追加できます。そのため、サイトを壊してしまう心配はありません。

まず、無料のWPCodeプラグインをインストールして有効化する必要があります。ヘルプが必要な場合は、WordPressプラグインのインストール方法に関するこのガイドを参照してください。
WPCodeを有効化したら、WordPressダッシュボードの コードスニペット » + スニペットを追加 に移動してください。
次に、「カスタムコードを追加(新規スニペット)」オプションにマウスカーソルを合わせ、その下にある「+カスタムスニペットを追加」ボタンをクリックします。

そこから、画面に表示されるオプションのリストからコードタイプとして「PHPスニペット」を選択する必要があります。

「カスタムスニペットを作成」ページで、スニペットのタイトルを追加することから始めることができます。これは、コードが何のためのものかを思い出すのに役立つものであれば何でも構いません。
次に、上記のコードを「コードプレビュー」ボックスに貼り付けるだけです。

その後、行う必要があるのは、スイッチを「非アクティブ」から「アクティブ」に切り替え、「スニペットを保存」ボタンをページの上部でクリックすることだけです。

複数のカテゴリを除外したい場合は、コードを次のように変更できます。
function exclude_category_home( $query ) {
if ( $query->is_home ) {
$query->set( 'cat', '-5, -9, -23' );
}
return $query;
}
add_filter( 'pre_get_posts', 'exclude_category_home' );
WordPressのホームページから除外したいID(-5、-9、-23)をカテゴリIDに置き換えるだけです。
この記事が、WordPress のホームページからカテゴリを除外する方法を学ぶのに役立ったことを願っています。また、カテゴリをより効率的に使用するのに役立つ WordPress の最も人気のあるカテゴリハックとプラグイン 10 選 や、専門家が選んだ WordPress のベストお問い合わせフォームプラグイン 9 選 もご覧ください。
この記事が気に入ったら、WordPressのビデオチュートリアルについては、YouTubeチャンネルを購読してください。 TwitterやFacebookでもフォローできます。

イジー・ヴァネック
最初はExclude Categoryプラグインを使用していましたが、プラグインが増えてきたので、あなたのスニペットを試したところ、同じように素晴らしい効果がありました。コードを提供していただき、本当にありがとうございます。これで、システムに不要なプラグインを1つ減らすことができました。
ジョセフ
Ultimate Category Excluderプラグインを使用すると、Googlebotがその特定のカテゴリの投稿をクロールするのをブロックしますか?サイトユーザーが特定のカテゴリにアクセスできないようにしたいです。
WPBeginnerサポート
サイトマップやサイト上の他のページなどから Google がページを見つけることができる限り、クローラーは問題ありません。
管理者
ヨハン
いつものように、素晴らしいチュートリアルをすべてありがとうございます!
functions.php を使ってカテゴリを除外する方法はうまくいっています。しかし、同じカテゴリがプロフィールページに配置したカスタム WP_Query からも除外されるのはなぜですか?
私のクエリ:
$the_query = new WP_Query( array( ‘meta_key’ => ‘fetcher’, ‘meta_value’ => $user_ID ) );
WPBeginnerサポート
お役に立てて嬉しいです。このコードはホームページにのみ影響するはずです。原因として、キャッシュが考えられる可能性の一つです。
管理者
Johan Hagvil
解決策を見つけました!
スニペットの2行目を次のように変更します。
if ( $query->is_main_query() && $query->is_front_page() ) {
WPBeginnerサポート
Thank you for sharing for anyone else who may be running into the same error!
metin
ブログカテゴリのIDを1と仮定します。すべてのカテゴリではなく、1より大きいすべてのIDを表示するPHPコードを追加できますか?IDを毎回追加するのではなく、動的に機能するPHPコードで機能する方法はありますか?
WPBeginnerサポート
実現したいことに対しては、他のすべてのカテゴリを除外しようとするのではなく、表示したいカテゴリを選択する方が良いでしょう。その方法は以下の記事で確認できます!
https://www.wpbeginner.com/wp-tutorials/how-to-display-recent-posts-from-a-specific-category-in-wordpress/
管理者
Isaac
ありがとう、天才!完璧に動作します
WPBeginnerサポート
Glad our guide was helpful
管理者
Abdullah Al Muaz
ありがとう、うまくいきました。
Abdullah Al Muaz
最近の投稿を表示するために特定のページを使用しています。そのため、私の場合は `/code $query->is_home /code
「home」の代わりに何を入れるべきでしょうか
特定のカテゴリを「blog」から非表示にしたいです」
WPBeginnerサポート
ブログページで最新の記事を表示するページを設定した場合、コードは同様に機能するはずです。
管理者
MENHADI HASAN
こんにちは。
検索フォームから特定のカテゴリとカスタム投稿タイプをすべて除外するにはどうすればよいですか、または検索フォームを変更して、特定のタクソノミーのみで検索し、それ以外はすべて除外することはできますか?
WPBeginnerサポート
検索からコンテンツを非表示にするには、こちらのページをご覧ください:https://www.wpbeginner.com/plugins/how-to-exclude-specific-pages-authors-and-more-from-wordpress-search/
管理者
Sidchan Mall
ヒントをありがとうございます。このプラグインを使って、ウェブサイトのテーマ固有のコンテンツ(お客様の声、スライダーなど)を除外するようにしました!
WPBeginnerサポート
You’re welcome, glad our guide could help
管理者
Paolo
方法2の手順に従いましたが、変更後にメディアライブラリが機能しなくなりました!
WPBeginnerサポート
このコードは、サイト全体に影響するような大きなエラーがない限り、メディアライブラリに影響を与えるべきではありません。理由はそのエラーメッセージによります。
管理者
クリストファー
この記事をありがとうございます。
特定のカテゴリから Google AdSense 広告を除外することも可能かどうか質問したいのですが。