Woocommerce - 获取具有特定属性的产品类别
问题描述:
我需要获取与某个属性匹配的类别中的所有产品。Woocommerce - 获取具有特定属性的产品类别
这里我的代码:
$title = isset($instance['title']) ? $instance['title'] : '';
$car_type = isset($instance['cartype']) ? $instance['cartype'] : 'usato';
$car_brand = isset($instance['carbrand']) ? $instance['carbrand'] : '';
$limit = isset($instance['limit']) ? $instance['limit'] : null;
$order = $instance['order'];
$carousel = $instance['carousel'];
$query_args = [
'post_type' => 'product',
'post_status' => 'publish',
'product_cat' => $car_type
];
// Ordino i risultati
if ($order == 'random') {
$query_args['orderby'] = 'random';
} else {
$query_args['orderby'] = 'name';
$query_args['order'] = $order;
}
// Devo limitare il numero di risultati?
if ($limit) {
$query_args['posts_per_page'] = $limit;
}
if ($car_brand != '') {
$query_args['tax_query'] = array(
array(
'key' => 'pa_marca',
'value' => 'nike',
'field' => 'slug',
'compare' => '='
)
);
}
的问题是,我总是0,因此即使存在与该类别和属性的产品。
我该如何修改查询?
答
最后我得到的解决方案,这是你如何需要在属性查询:
$query_args['tax_query'] = array(
array(
'key' => 'pa_brand',
'field' => 'slug',
'terms' => 'nike'
)
);
注意的是,在key
你需要要将pa_
添加到您的属性名称中,并且您需要使用terms
来指定属性的值。
答
看起来你用tax_query
而不是meta_query
。 tax_query
适用于taxonomie过滤器。
试试这个:
$query_args['meta_query'] => array(
array(
'key' => 'pa_marca',
'value' => 'nike',
'compare' => '=',
),
);
我得到零结果,我敢肯定,至少有一个 –