WordPressの投稿一覧から特定のカテゴリーやタグ、タクソノミーを除いて出力する
WordPressの新着記事一覧などから、特定のカテゴリに属する記事一覧を除いて表示させたい場合があると思います。そんなときは、
pre_get_posts
フックを用いて柔軟に対応することができます。
特定のカテゴリーに属する記事を除外
add_action('pre_get_posts', function($query) {
if (is_admin() || !$query->is_main_query()) {
return;
}
// トップページ
if ($query->is_home()) {
$query->set('category__not_in', [12, 15]);
}
});
'category__not_in'
キーワードを使えば簡単に除外することができます。第2引数には除外するカテゴリーが1つであっても、配列で指定します。
特定のタグに属する記事を除外
add_action('pre_get_posts', function($query) {
if (is_admin() || !$query->is_main_query()) {
return;
}
// トップページ
if ($query->is_home()) {
$query->set('tag__not_in', [18, 20]);
}
});
タグの場合は 'tag__not_in'
を使用します。
特定のタクソノミーに属する記事を除外
add_action('pre_get_posts', function($query) {
if (is_admin() || !$query->is_main_query()) {
return;
}
// トップページ
if ($query->is_home()) {
$query->set('tax_query', [
[
'taxonomy' => 'tax',
'terms' => [12, 15],
'operator' => 'NOT IN'
]
]);
}
});
タクソノミーの場合は '*__not_in'
のような変数が用意されていないので、タクソノミーの配列で指定します。
CSS本執筆しました!!!
CSS本出します!1/29発売予定
— たかもそ@CSS本1/29発売!! (@takamosoo) 2018年12月31日
自分がCSS学びたての頃にもっとはやく知りたかったテクニックを載せています。CSSの基礎知識について解説していないので、中級者〜向けとなります。CSS入門書を読んではみたものの、思い通りに作れない人にオススメです。
よろしくお願いします。https://t.co/fkz1dM03Pj pic.twitter.com/suYyaPqwIs