【发布时间】:2013-12-23 02:10:24
【问题描述】:
我将WP_Query 用于 Woocommerce 产品,以尝试查询特定类别的产品。这是对我有用的语法 -
$args = array(
'posts_per_page' => -1,
'product_cat' => 'category-slug-here',
'post_type' => 'product',
'orderby' => 'title',
);
$the_query = new WP_Query( $args );
// The Loop
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '' . get_the_title() . '<br /><br />';
}
wp_reset_postdata();
这会返回数据,但我想传递一个 ID,而不是类别 slug,以进行过滤,并且我想仅查找存在于多个类别中的产品。
product_cat 的参数不是 WP_Query 的原生参数(至少我可以找到),所以我假设这是 Woocommerce 的自定义。通过他们的文档,我无法找到任何可以让我按类别 ID 进行过滤的内容,也无法使用 AND 条件进行此过滤。
使用cat,tax_query 和category__and 的数组没有产生任何结果。本质上,我想查询类别 ID 102 和 115 中存在的所有产品。如果我必须使用 slug,我确信有办法根据我拥有的 ID 获取该信息,但我会希望避免 2 个查询按多个类别进行过滤。
有谁知道如何做到这一点?
更新:我了解到在 product_cat 参数中用逗号分隔类别 slug 会产生“或”效果,因此它将结合两者的不同产品,但这不是我想要的我正在寻找。所以,例如:
'product_cat' => 'category-slug1, category-slug2'
将总共返回两个类别的产品,但我仍在寻找一种方法来查找仅属于两个或多个类别的不同产品。
【问题讨论】:
标签: wordpress categories woocommerce