以下は私の税務照会です。現時点では、これは指定された用語の少なくとも1つを持つすべての投稿を返します。
指定した用語のALLを含む投稿のみを返すようにする方法はありますか。
[tax_query] => Array
(
[relation] => AND
[0] => Array
(
[taxonomy] => services
[field] => term_id
[terms] => Array
(
[0] => 3
[1] => 10
[2] => 6
[3] => 9
)
[operator] => IN
)
[1] => Array
(
[taxonomy] => awards
[field] => term_id
[terms] => Array
(
[0] => 13
[1] => 12
)
[operator] => IN
)
)
両方のサブ配列で[operator] => AND
を試してください。私はWP_Tax_Query::get_sql()
を読んだことでうまくいくと思います。
あるいは、2つのクエリを5つに分割することもできます(条件をどのように取得しているかによっては、コーディングが簡単になる場合もあります)。
2つの構成の間にパフォーマンスの違いがあるかどうかを知ることは興味深いでしょう。 (@ Frank Martin、または他の誰かが、それぞれの方法で生成された実際のSQLを共有できれば素晴らしいでしょう。私はこの答えをコミュニティWikiとして設定しました。)
[tax_query] => Array
(
[relation] => AND
[0] => Array
(
[taxonomy] => services
[field] => term_id
[terms] => Array
(
[0] => 3
)
[operator] => IN
)
[1] => Array
(
[taxonomy] => services
[field] => term_id
[terms] => Array
(
[0] => 10
)
[operator] => IN
)
[2] => Array
(
[taxonomy] => services
[field] => term_id
[terms] => Array
(
[0] => 6
)
[operator] => IN
)
[3] => Array
(
[taxonomy] => services
[field] => term_id
[terms] => Array
(
[0] => 9
)
[operator] => IN
)
[4] => Array
(
[taxonomy] => awards
[field] => term_id
[terms] => Array
(
[0] => 13
)
[operator] => IN
)
[5] => Array
(
[taxonomy] => awards
[field] => term_id
[terms] => Array
(
[0] => 12
)
[operator] => IN
)
)
。
最近の高度な分類クエリの質問で作業中に発見したように、 1つのカスタム分類に対して複数の用語を含む高度な分類クエリのURLパラメータを渡す方法 WPはちょうどそれをするでしょう(少なくとも3.1.4の下で)。