이 질문을 찾았습니다.
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로 설정하려고합니다 ... 그리고 생각할 수있는 두 가지의 모든 조합. 그러나 지금까지 분류 기록 보관소는 여전히 하위 용어로 항목을 표시합니다.
그리고 다음 테스트는 추가 세금 쿼리를 덮어 쓰지 않고 ADD에 추가하는 것 같습니다.
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이 현재 값을 덮어 쓰지 않아야합니까?