アーカイブから特定のタームを除外

情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。

functions.php に

add_action( 'pre_get_posts', 'my_exclude_terms_from_query' );
function my_exclude_terms_from_query( $query ) {
    if ( $query->is_main_query() /* その他の設定 */ ) {
        $tax_query = array (
                array(
                    'taxonomy' => 'タクソノミー名',
                    'terms' => array( 'スラッグ1','スラッグ2' ),
                    'field' => 'slug',
                    'operator' => 'NOT IN',
                )
        );
        $query->set( 'tax_query', $tax_query );
    }
}

is_main_query って、とても便利なんだけど、1つのサイト内で色々な場合の色々な設定をしないといけない場合、だんだん頭が混乱してくる…結果を見ながらよく確認しないといけません。それでも、テンプレート上で分岐するよりも楽ですね。

コメントは受け付けていません。