这不应使用query_posts
, 就这点而言,什么都不应该用query_posts
因为有更好的方法可以在执行前修改主查询。看见pre_get_posts
也就是说,根据用例,这应该通过附加的自定义查询来处理,而不是修改主查询。
此外,该问题还引用了两个分类法之间需要AND关系的情况,但在代码示例中使用了OR。
Solution:
$args = array(
\'post_type\' => \'products\',
\'posts_per_page\' => -1, //<-- Get all
\'tax_query\' = array(
\'relation\' => \'AND\',
array(
\'taxonomy\' => \'product_category\',
\'terms\' => array(\'injectors\'),
\'field\' => \'slug\',
),
array(
\'taxonomy\' => \'dosages\',
\'terms\' => array( \'1ml\',\'2ml\',\'5ml\' ),
\'field\' => \'slug\'
)
)
);
$products = new WP_Query($args);
if($products->have_posts()) : while($products->have_posts()) : the_post() ;
// Output desired markup inside custom query loop here.
endwhile; endif; `