私はこの質問を見つけました:
pre_get_postsフィルターで$ query-> set( 'tax_query'を使用する方法はありますか?
これは、はい、pre_get_posts()を使用して分類アーカイブの分類クエリを変更できることを示しているようです。だから私は思いついた
add_action('pre_get_posts', 'kia_no_child_terms' );
function kia_no_child_terms( $wp_query ) {
if( is_tax() ) {
$wp_query->tax_query->queries[0]['include_children'] = 0;
}
}
と同様
add_action('pre_get_posts', 'kia_no_child_terms' );
function kia_no_child_terms( $wp_query ) {
if( is_tax() ) {
$tax_query = $wp_query->get( 'tax_query' );
$tax_query->queries[0]['include_children'] = 0;
$wp_query->set( 'tax_query', $tax_query );
}
}
include_childrenパラメータをfalseに設定しようとしています...そして、考えられる2つの組み合わせのほぼすべてです。ただし、これまでのところ、分類アーカイブにはまだ子用語のアイテムが表示されています
次のテストでは、上書きするのではなく追加の税クエリを追加しているように見えますが、混乱させられます。
function dummy_test( $wp_query){
$tax_query = array(
'relation' => 'OR',
array(
'taxonomy' => 'tax1',
'terms' => array( 'term1', 'term2' ),
'field' => 'slug',
),
array(
'taxonomy' => 'tax2',
'terms' => array( 'term-a', 'term-b' ),
'field' => 'slug',
),
);
$wp_query->set( 'tax_query', $tax_query );
);
add_action('pre_get_posts','dummy_test');
SETは現在の値を上書きしませんか?