Eu tenho um tipo de postagem personalizado chamado 'episode'. Anexado a 'episode', tenho uma taxonomia personalizada chamada 'video_type' que contém dois termos: "bonus-footage" e "episode"; "episode" contém dois termos filhos "season 1" e "season 2" (outras temporadas serão adicionadas no futuro). Quero pegar apenas a postagem mais recente do tipo 'episódio', mas não incluir nenhuma postagem do termo 'metragem de bônus'. Abaixo está o código que estou usando para isso:
<?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;
?>
A consulta funciona conforme o esperado, se uma postagem em um dos termos da 'temporada' for a mais nova, mas se uma postagem em "bônus-metragem" for a mais nova, será carregada. Em outras palavras, meus parâmetros "tax_query" parecem não ter efeito na consulta. Não estou formatando o "tax_query" corretamente ou estou perdendo outra coisa?
Eu também tentei definir "tax_query" como abaixo:
'tax_query' => array(
'taxonomy' => 'video_type',
'terms' => 'episode',
'field' => 'slug',
'include_children' => true,
'operator' => 'IN'
),
mas ainda estou obtendo o mesmo resultado.
fonte