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.

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'
    )
),

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.