Параметр "tax_query" не працює з WP_Query


18

У мене є власний тип публікації під назвою "епізод". У додаток до "епізоду" у мене є власна систематика під назвою "video_type", яка містить два терміни: "бонус-кадри" та "епізод"; "Епізод" містить два дочірні терміни "сезон-1" та "сезон-2" (інші сезони будуть додані в майбутньому). Я хочу захопити лише останню публікацію типу "епізод", але не включати жодних публікацій із терміну "бонус-кадри". Нижче наведено код, який я використовую для цього:

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

Запит працює так, як очікувалося, якщо публікація в одному з 'сезонних' періодів є найновішою, але якщо публікація у «бонусних кадрах» є найновішою, то вона завантажується. Іншими словами, мої параметри "tax_query", схоже, не впливають на запит. Чи я не форматую запит "tax_query" належним чином чи я пропускаю щось інше?

Я також спробував встановити "tax_query", як показано нижче:

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

але я все одно отримую той самий результат.

Відповіді:


44

tax_queryПараметр є масив масивів , а не просто масив.

Це:

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

Натомість має бути таким:

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

1
Спасибі Чіп. Мені цікаво, чому причина Wordpress так побудована?
Джош Фарнеман

3
Так що можна виконувати кілька податкових запитів, використовуючи булеві. Дивіться зв'язаний запис Codex у розділі " Кілька поводження з таксономією ".
Чіп Беннетт

1
Працювало як шарм для мене! Спасибі, я стукнув головою об стіну на цьому!
Чарльз Блеквелл

Я не можу зрозуміти, як перекласти це в параметр url і чи він фактично використовується WP_Query. Це просто продовжує ігноруватися.
realgeek
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.