因为如果我使用:
\'relation\' => \'AND\'
或
\'relation\' => \'OR\'
结果总是一样的。为什么?
因为如果我使用:
\'relation\' => \'AND\'
或
\'relation\' => \'OR\'
结果总是一样的。为什么?
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
(或两者都满足)。具有AND
返回的帖子必须同时包含两个术语。
具有OR
返回的帖子只需要一个或另一个。
如果他们返回的是相同的,那么您查询的帖子可能都有这两个术语。
嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post