我正在尝试按多种分类法筛选帖子。我下面的代码工作得很好,但有一件事我不太清楚。当我过滤帖子时,它们似乎只显示适用于我所有分类法“术语”的帖子。
为了说明我的问题:假设我有一篇帖子,那篇帖子是“蒙大拿”。蒙大拿州的“地区”分类法为“region1”。它的“人口”也为“pop1”。我们还有另一个帖子叫做“爱达荷”,在“region2”和“pop1”中,另外,它也在“pop2”中。
因此,我运行我的查询:
$myquery[\'tax_query\'] = array(
\'relation\' => \'OR\',
array(
\'taxonomy\' => \'regions\',
\'terms\' => array(region1),
\'field\' => \'slug\',
\'operator\' => \'IN\',
),
array(
\'taxonomy\' => \'population\',
\'terms\' => array(pop1),
\'field\' => \'slug\',
\'operator\' => \'IN\',
)
);
query_posts($myquery);
一切都很好。。。爱达荷州和蒙大拿州都出现了。所以我运行了另一个查询,这次使用另一个填充词“pop2”和“pop1”进行过滤。
$myquery[\'tax_query\'] = array(
\'relation\' => \'OR\',
array(
\'taxonomy\' => \'regions\',
\'terms\' => array(region1),
\'field\' => \'slug\',
\'operator\' => \'IN\',
),
array(
\'taxonomy\' => \'population\',
\'terms\' => array(pop1,pop2),
\'field\' => \'slug\',
\'operator\' => \'IN\',
)
);
query_posts($myquery);
现在爱达荷州和蒙大拿州都应该出现了,对吧?。。。但他们没有。只有蒙大拿州出现是因为它有“region1”,但爱达荷州没有出现是因为它不在region1,也没有“pop1”和“pop2”。
所以我的问题是:
当至少有一个术语匹配而不是所有术语都必须为true时,是否可以让taxonomy操作符工作?