Thông số thuế tax_query không hoạt động với WP_Query


17

Tôi có một loại bài đăng tùy chỉnh được gọi là 'tập'. Được đính kèm với 'tập' Tôi có một phân loại tùy chỉnh được gọi là 'video_type' có hai thuật ngữ: "phần thưởng-cảnh quay" và "tập"; "Tập" chứa hai thuật ngữ con "mùa 1" và "mùa 2" (các mùa khác sẽ được thêm vào trong tương lai). Tôi chỉ muốn lấy bài đăng gần đây nhất của loại 'tập' nhưng không bao gồm bất kỳ bài đăng nào từ thuật ngữ 'phần thưởng'. Dưới đây là mã tôi đang sử dụng cho việc này:

<?php
$some_args = array(
    'tax_query' => array(
        'taxonomy' => 'video_type',
        'terms' => 'bonus-footage',
        'field' => 'slug',
        'include_children' => true,
        'operator' => 'NOT IN'
     ),
    'posts_per_page' => 1,
    'post_type' => 'episode',
);

$s = new WP_Query( $some_args );

if ( $s->have_posts() ) : $s->the_post();
    // Do something with this post.
endif;
?>

Truy vấn hoạt động như mong đợi nếu một bài đăng theo một trong các thuật ngữ 'mùa' là mới nhất, nhưng nếu một bài đăng trong "cảnh quay thưởng" là mới nhất, thì nó sẽ tải bài đó. Nói cách khác, các tham số "tax_query" của tôi dường như không ảnh hưởng đến truy vấn. Tôi không định dạng "tax_query" đúng cách hay tôi đang thiếu thứ gì khác?

Tôi cũng đã thử đặt "tax_query" như sau:

'tax_query' => array(
        'taxonomy' => 'video_type',
        'terms' => 'episode',
        'field' => 'slug',
    'include_children' => true,
        'operator' => 'IN'
),

nhưng tôi vẫn nhận được kết quả tương tự.

Câu trả lời:


41

Các tax_querytham số là một mảng của các mảng , không chỉ là một mảng.

Điều này:

'tax_query' => array(
        'taxonomy' => 'video_type',
        'terms' => 'episode',
        'field' => 'slug',
        'include_children' => true,
        'operator' => 'IN'
),

Thay vào đó nên là thế này:

'tax_query' => array(
    array(
        'taxonomy' => 'video_type',
        'terms' => 'episode',
        'field' => 'slug',
        'include_children' => true,
        'operator' => 'IN'
    )
),

1
Cảm ơn Chip. Tôi tò mò về lý do tại sao Wordpress được xây dựng theo cách này?
Josh Farneman

3
Vì vậy, nhiều truy vấn thuế có thể được thực hiện, sử dụng Booleans. Xem mục Codex được liên kết, trong phần " Xử lý nhiều nguyên tắc phân loại ".
Chip Bennett

1
Làm việc như một cơ duyên cho tôi! Cảm ơn người đàn ông, tôi đã đập đầu vào tường trên cái này!
Charles Blackwell

Tôi dường như không thể tìm ra cách dịch cái này thành một tham số url và nó thực sự được sử dụng bởi WP_Query. Nó chỉ tiếp tục bị bỏ qua.
realgeek
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.