параметр "налоговый запрос" не работает с запросом WP
У меня есть пользовательский тип записи под названием "эпизод". В приложении к "эпизоду" у меня есть пользовательская таксономия под названием "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'
),
Но я все еще получаю тот же результат.
1 answers
В 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'
)
),