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_querytax_query适用于taxonomie过滤器。

试试这个:

$query_args['meta_query'] => array(
    array(
     'key'  => 'pa_marca', 
     'value' => 'nike', 
     'compare' => '=', 
    ),  
); 

WP_Query#Custom_Field_Parameters

+0

我得到零结果,我敢肯定,至少有一个 –