“Tax_query” parametresi WP_Query ile çalışmıyor


17

'Bölüm' adı verilen özel bir yazı türüm var. "Bölüm" e ekli "Video_type" adında iki terim içeren özel bir sınıflandırma var: "bonus-çekim" ve "bölüm"; "bölüm" iki alt terimi içerir "sezon-1" ve "sezon-2" (diğer sezonlar gelecekte eklenecektir). 'Bölüm' türünün yalnızca en son gönderisini almak istiyorum, ancak 'bonus-footage' teriminin herhangi bir gönderisini içermiyorum. Bunun için kullandığım kod aşağıdadır:

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

'Sezon' terimlerinden birindeki bir gönderi en yeniyse, ancak "bonus-footing" deki bir gönderi en yeniyse, sorgu beklendiği gibi çalışır. Başka bir deyişle, "tax_query" parametrelerimin sorgu üzerinde bir etkisi yok gibi görünüyor. "Tax_query" yi düzgün biçimlendirmiyor muyum yoksa başka bir şey mi kaçırıyorum?

Ayrıca aşağıdaki gibi "tax_query" ayarını denedim:

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

ama yine de aynı sonucu alıyorum.

Yanıtlar:


42

tax_queryParametresi olan dizinin dizi , sadece bir dizi.

Bu:

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

Bunun yerine şu olmalıdır:

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

1
Teşekkürler Chip. Wordpress'in bu şekilde neden inşa edildiğini merak ediyorum?
Josh Farneman

3
Böylece Booleans kullanılarak birden çok vergi sorgusu gerçekleştirilebilir. " Çoklu Sınıflandırma İşleme " bölümünün altındaki bağlantılı Kodeks girişine bakın.
Chip Bennett

1
Benim için bir cazibe gibi çalıştı! Teşekkürler adamım, bu konuda kafamı duvardan vuruyordum!
Charles Blackwell

Bir url parametresine bu çevirmek nasıl anlayamıyorum ve aslında WP_Query tarafından kullanılan var. Sadece görmezden geliniyor.
realgeek
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.