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.