WordPressのホームページからカテゴリを除外する方法

WordPress のホームページがごちゃごちゃしていませんか?デフォルトでは、WordPress はすべてのカテゴリの投稿を表示するため、優れたコンテンツが埋もれてしまい、訪問者にとって混乱を招く可能性があります。

管理カテゴリ、会員限定コンテンツ、または単にフロントページに表示したくないトピックがある場合、これは実際の問題となる可能性があります。

幸いなことに、簡単に制御を取り戻すことができます。特定のカテゴリを除外することで、ユーザーを目的のコンテンツに誘導する、よりクリーンで戦略的なホームページを作成できます。

この記事では、WordPressのホームページからカテゴリを簡単に除外する2つの最良の方法をご紹介します。

WordPress ホームページからカテゴリを除外する

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

まず、無料のWPCodeプラグインをインストールして有効化する必要があります。ヘルプが必要な場合は、WordPressプラグインのインストール方法に関するこのガイドを参照してください。

WPCodeを有効化したら、WordPressダッシュボードの コードスニペット » + スニペットを追加 に移動してください。

次に、「カスタムコードを追加(新規スニペット)」オプションにマウスカーソルを合わせ、その下にある「+カスタムスニペットを追加」ボタンをクリックします。

WPCodeでカスタムコードを追加する

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

コードの種類としてPHPスニペットを選択

「カスタムスニペットを作成」ページで、スニペットのタイトルを追加することから始めることができます。これは、コードが何のためのものかを思い出すのに役立つものであれば何でも構いません。

次に、上記のコードを「コードプレビュー」ボックスに貼り付けるだけです。

コードをWPCodeのコードプレビューボックスに貼り付けます

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

カスタムコードスニペットを有効化して保存する

複数のカテゴリを除外したい場合は、コードを次のように変更できます。

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チャンネルを購読してください。 TwitterFacebookでもフォローできます。

開示:当社のコンテンツは読者によってサポートされています。これは、当社のリンクの一部をクリックすると、当社が手数料を得る可能性があることを意味します。WPBeginnerがどのように資金提供されているか、それがなぜ重要か、そしてどのように私たちをサポートできるかについては、こちらをご覧ください。当社の編集プロセスはこちらです。

究極のWordPressツールキット

無料のツールキットにアクセスしましょう - すべてのプロフェッショナルが持つべきWordPress関連の製品とリソースのコレクションです!

読者とのインタラクション

21 CommentsLeave a Reply

  1. 最初はExclude Categoryプラグインを使用していましたが、プラグインが増えてきたので、あなたのスニペットを試したところ、同じように素晴らしい効果がありました。コードを提供していただき、本当にありがとうございます。これで、システムに不要なプラグインを1つ減らすことができました。

  2. Ultimate Category Excluderプラグインを使用すると、Googlebotがその特定のカテゴリの投稿をクロールするのをブロックしますか?サイトユーザーが特定のカテゴリにアクセスできないようにしたいです。

    • サイトマップやサイト上の他のページなどから Google がページを見つけることができる限り、クローラーは問題ありません。

      管理者

  3. いつものように、素晴らしいチュートリアルをすべてありがとうございます!

    functions.php を使ってカテゴリを除外する方法はうまくいっています。しかし、同じカテゴリがプロフィールページに配置したカスタム WP_Query からも除外されるのはなぜですか?

    私のクエリ:
    $the_query = new WP_Query( array( ‘meta_key’ => ‘fetcher’, ‘meta_value’ => $user_ID ) );

    • お役に立てて嬉しいです。このコードはホームページにのみ影響するはずです。原因として、キャッシュが考えられる可能性の一つです。

      管理者

      • 解決策を見つけました!
        スニペットの2行目を次のように変更します。

        if ( $query->is_main_query() && $query->is_front_page() ) {

  4. ブログカテゴリのIDを1と仮定します。すべてのカテゴリではなく、1より大きいすべてのIDを表示するPHPコードを追加できますか?IDを毎回追加するのではなく、動的に機能するPHPコードで機能する方法はありますか?

  5. 最近の投稿を表示するために特定のページを使用しています。そのため、私の場合は `/code $query->is_home /code
    「home」の代わりに何を入れるべきでしょうか
    特定のカテゴリを「blog」から非表示にしたいです」

    • ブログページで最新の記事を表示するページを設定した場合、コードは同様に機能するはずです。

      管理者

  6. こんにちは。
    検索フォームから特定のカテゴリとカスタム投稿タイプをすべて除外するにはどうすればよいですか、または検索フォームを変更して、特定のタクソノミーのみで検索し、それ以外はすべて除外することはできますか?

  7. ヒントをありがとうございます。このプラグインを使って、ウェブサイトのテーマ固有のコンテンツ(お客様の声、スライダーなど)を除外するようにしました!

    • このコードは、サイト全体に影響するような大きなエラーがない限り、メディアライブラリに影響を与えるべきではありません。理由はそのエラーメッセージによります。

      管理者

  8. この記事をありがとうございます。

    特定のカテゴリから Google AdSense 広告を除外することも可能かどうか質問したいのですが。

返信する

コメントを残していただきありがとうございます。すべてのコメントは、当社のコメントポリシーに従ってモデレーションされますので、ご了承ください。メールアドレスは公開されません。名前フィールドにキーワードを使用しないでください。個人的で有意義な会話をしましょう。