このQは Qのこの答え へのフォローアップです: ? " .
Type | Pro | Contra
--------------------------------------------------------
Run a new query | Easy to implement | Add. Queries
| Add. time to execute the DB call + processing the parsing of the results
Inside the loop | Easy to implement | Sometimes Add. Queries
| Add. time to execute
Modify the query | Full control | Hard to implement
| Needs a lot of knowledge (preparing, DB interaction)
Add new query parts | No perform. impact | Hard to get around
| Secure
| Full core support
最初のタイプimhoは、notオプションです。 "タイプ" 2と3はもう一方のQで既に答えられていて、両方ともまだいくらかの引き戻しがあります。
tax_query
フィルタを使用してメインクエリに追加のpre_get_posts
引数を追加する方法Pre_get_postsを使用して、メインクエリに分類クエリを設定できます。
add_action( 'pre_get_posts', 'my_exclude_terms_from_query' );
function my_exclude_terms_from_query( $query ) {
if ( $query->is_main_query() /* && whatever else */ ) {
$tax_query = array (
array(
'taxonomy' => 'category',
'terms' => array( 'cat-slug' ),
'field' => 'slug',
'operator' => 'NOT IN',
)
);
$query->set( 'tax_query', $tax_query );
}
}
tax_query
が既に設定されており、代わりにそれを変更する必要がある場合は、取得して$tax_query
配列に追加することができます。