トップページの新着記事一覧より特定のカテゴリーを除外する方法をご紹介致します。
特定のカテゴリー(そのカテゴリーの子カテゴリーも含む)を除外することができます。
方法としては、カテゴリー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
注意点
こちらでは、トップページの投稿一覧より特定のカテゴリーの記事を除外する方法なり、上記のカスタマイズでは、メインクエリのホームページ(トップページのリスト)のみに適用される方法になってます。if文の条件分岐が「$query->is_home() && $query->is_main_query()」にしているためです。