tax_query
是一个二维数组,每个子数组都可以被视为一个分类查询,其典型形式为:
array(
\'taxonomy\' => \'people\',
\'field\' => \'slug\',
\'terms\' => \'bob\'
)
(例如,在文章中使用“人”分类法中的slug“bob”一词)。
事实是tax_query
是二维数组意味着您可以有多个分类查询。在这种情况下,您可能希望返回匹配的帖子all 分类查询(relation => \'AND\'
) 或匹配的帖子at least one 分类查询(relation => \'OR\'
).
作为codex: 各州
此构造允许您通过使用第一个(外部)数组中的关系参数来描述分类查询之间的布尔关系来查询多个分类。
例如:
$args = array(
\'post_type\' => \'post\',
\'tax_query\' => array(
\'relation\' => \'AND\', //Must satisfy all taxonomy queries
array(
\'taxonomy\' => \'movie_genre\',
\'field\' => \'slug\',
\'terms\' => \'action\'
),
array(
\'taxonomy\' => \'actor\',
\'field\' => \'id\',
\'terms\' => array( 103, 115, 206 ),
\'operator\' => \'NOT IN\'
)
)
);
$query = new WP_Query( $args );
返回所有帖子
move_genre
带缓动“动作”的术语
AND 没有
actor
带ID的术语
103
,
115
,
206
.
另一方面(注意relation
更改):
$args = array(
\'post_type\' => \'post\',
\'tax_query\' => array(
\'relation\' => \'OR\',//Must satisfy at least one taxonomy query
array(
\'taxonomy\' => \'movie_genre\',
\'field\' => \'slug\',
\'terms\' => \'action\'
),
array(
\'taxonomy\' => \'actor\',
\'field\' => \'id\',
\'terms\' => array( 103, 115, 206 ),
\'operator\' => \'NOT IN\'
)
)
);
$query = new WP_Query( $args );
返回包含其中一个have的所有帖子
move_genre
带缓动“动作”的术语
OR 没有
actor
带ID的术语
103
,
115
,
206
(或两者都满足)。