「エピソード」と呼ばれるカスタム投稿タイプがあります。「エピソード」に添付されている「video_type」というカスタム分類には、「bonus-footage」と「episode」という2つの用語が含まれています。「episode」には、「season-1」と「season-2」という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'
),
しかし、私はまだ同じ結果を得ています。