【WordPress】トップページの新着記事一覧より特定のカテゴリを除外する方法

トップページの新着記事一覧より特定のカテゴリーを除外する方法をご紹介致します。

特定のカテゴリー(そのカテゴリーの子カテゴリーも含む)を除外することができます。

方法としては、カテゴリーIDを調べて、function.phpに除外するコードを追加するだけです。

STEP1 : カテゴリーIDの調べ方

投稿 > カテゴリーを選択して、除外したいカテゴリーの編集画面を開く。

ブラウザーのアドレスバーに「・・・ID=〇〇〇&・・・」と表示されている数字がそのカテゴリーのIDになります。

※カテゴリー一覧で除外したいカテゴリーにマウスを合わせると、開いているブラウザーの下に、リンクアドレスが表示されます。そこに、「・・・ID=〇〇〇&・・・」と表示されている数字がそのカテゴリーのIDになります。

STEP2 : function.phpにコピペ

子テーマ内の、functions.phpに以下のコードのIDを書き換えてコピペする。

例えば、STEP1で調べたカテゴリーのIDが、「64」であった場合!

//特定のカテゴリの除外
function exclude_category( $query ) {
  if ( $query->is_home() && $query->is_main_query() ) {
    $query->set( 'cat', '-64' );//マイナスをつけてカテゴリIDを除外する
  }
}
add_action( 'pre_get_posts', 'exclude_category' );

複数のカテゴリーを除外したい場合

//特定のカテゴリの除外
function exclude_category( $query ) {
  if ( $query->is_home() && $query->is_main_query() ) {
    $query->set( 'cat', '-64,-70,-112' );//マイナスをつけてカテゴリIDを除外する
  }
}
add_action( 'pre_get_posts', 'exclude_category' );

参考 : pre get posts

プラグイン API/アクションフック一覧/pre get posts

注意点

こちらでは、トップページの投稿一覧より特定のカテゴリーの記事を除外する方法なり、上記のカスタマイズでは、メインクエリのホームページ(トップページのリスト)のみに適用される方法になってます。if文の条件分岐が「$query->is_home() && $query->is_main_query()」にしているためです。

タイトルとURLをコピーしました