Tôi tìm thấy câu hỏi này:
Có cách nào để sử dụng $ query-> set ('tax_query' trong bộ lọc pre_get_posts không?
có vẻ như chỉ ra rằng có, bạn có thể thay đổi truy vấn phân loại trên kho lưu trữ phân loại thông qua pre_get_posts (). vì vậy tôi đã đưa ra
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;
}
}
cũng như
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 );
}
}
để cố gắng đặt tham số include_children thành false ... và chỉ về mọi kết hợp của hai tôi có thể nghĩ ra. Tuy nhiên, cho đến nay, kho lưu trữ phân loại vẫn hiển thị các mục trong thuật ngữ con
và bài kiểm tra sau đây dường như chỉ THÊM các truy vấn thuế bổ sung thay vì ghi đè chúng ... điều này làm tôi bối rối.
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');
KHÔNG nên ghi đè giá trị hiện tại?