我需要获得类别中与属性匹配的所有产品。
这里是我的代码:
$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结果,即使有一个产品具有该类别和该属性
我应该如何修改查询?
最合适的回答,由SO网友:Christian Giupponi 整理而成
最后,我得到了解决方案,这就是您需要查询属性的方式:
$query_args[\'tax_query\'] = array(
array(
\'key\' => \'pa_brand\',
\'field\' => \'slug\',
\'terms\' => \'nike\'
)
);
请注意,在键中,您需要将pa\\u添加到属性名称中,并且需要使用术语来指定属性的值。