WooCommerce-获取具有特定属性的产品类别

时间:2016-11-18 作者:Christian Giupponi

我需要获得类别中与属性匹配的所有产品。

这里是我的代码:

$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结果,即使有一个产品具有该类别和该属性
我应该如何修改查询?

1 个回复
最合适的回答,由SO网友:Christian Giupponi 整理而成

最后,我得到了解决方案,这就是您需要查询属性的方式:

$query_args[\'tax_query\'] = array(
    array(
        \'key\'     => \'pa_brand\',
        \'field\'   => \'slug\',
        \'terms\'   => \'nike\'
    )
);
请注意,在键中,您需要将pa\\u添加到属性名称中,并且需要使用术语来指定属性的值。

相关推荐