WordPress カテゴリが複数指定されている場合のカテゴリ除外方法

カテゴリがAとBが設定されている記事で、Aを除外したいけど、Bが設定されている場合は表示したいという場合。

単純なカテゴリの除外であれば、category_not_in等で可能だが、これだとAとBが同時に設定されていた場合、除外されてしまう。

おそらくこのフォーラムの質問者と同じ状況だと思います。

解決方法はtax_queryを使います。

$args = array(
'post_type' => 'post',
'paged' => $paged,
'tax_query' => array(
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => array( 'A', 'B' ),
'operator' => 'AND',
),
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => array( 'A' ),
'operator' => 'NOT IN',
),
'relation' => 'OR',
),
);
query_posts( $args );

AとBが設定されている記事と、Aが設定されていない記事を取得します。relation=>’OR’により両方の条件が生きます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です