我发现了这个问题:
有没有一种方法可以在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 ...以及我能想到的几乎两者的每种组合。但是到目前为止,分类档案仍在子项中显示项目
而以下测试似乎只是添加了其他税收查询,而不是覆盖它们……这让我感到困惑。
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不应该覆盖当前值吗?