Parameter "tax_query" tidak berfungsi dengan WP_Query

17

Saya memiliki jenis posting khusus yang disebut 'episode'. Terlampir pada 'episode' Saya memiliki taksonomi khusus yang disebut 'video_type' yang berisi dua istilah: "bonus-footage" dan "episode"; "episode" berisi dua istilah anak "musim-1" dan "musim-2" (musim lain akan ditambahkan di masa mendatang). Saya ingin mengambil hanya posting terbaru dari jenis 'episode' tetapi tidak termasuk posting dari istilah 'bonus-footage'. Di bawah ini adalah kode yang saya gunakan untuk ini:

<?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;
?>

Kueri berfungsi seperti yang diharapkan jika posting di salah satu istilah 'musim' adalah yang terbaru, tetapi jika posting di "bonus-footage" adalah yang terbaru, maka itu memuat yang itu. Dengan kata lain, parameter "tax_query" saya tampaknya tidak mempengaruhi kueri. Apakah saya tidak memformat "tax_query" dengan benar atau apakah saya melewatkan sesuatu yang lain?

Saya juga mencoba mengatur "tax_query" seperti di bawah ini:

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

tapi saya masih mendapatkan hasil yang sama.

Josh Farneman
sumber

Jawaban:

41

The tax_queryparameter adalah array dari array , bukan hanya sebuah array.

Ini:

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

Seharusnya ini:

'tax_query' => array(
    array(
        'taxonomy' => 'video_type',
        'terms' => 'episode',
        'field' => 'slug',
        'include_children' => true,
        'operator' => 'IN'
    )
),
Chip Bennett
sumber
1
Terima kasih Chip Saya ingin tahu mengapa Wordpress membangunnya seperti ini?
Josh Farneman
3
Sehingga beberapa permintaan pajak dapat dilakukan, menggunakan Boolean. Lihat entri Codex yang ditautkan, di bawah bagian " Penanganan Beberapa Taksonomi ".
Chip Bennett
1
Bekerja seperti pesona bagi saya! Terima kasih kawan, aku membenturkan kepalaku dari tembok yang satu ini!
Charles Blackwell
Saya tidak bisa menemukan cara menerjemahkan ini ke parameter url dan menggunakannya benar-benar oleh WP_Query. Itu terus diabaikan.
realgeek