woocommerce产品属性,如何在两个值之间进行过滤

时间:2017-08-07 18:48:54

标签: php wordpress woocommerce

让我们说我有一个房屋清单,他们有一个名为“尺寸”的属性,现在我希望所有房屋的尺寸在200到300之间。

我试过了

 $args = array(
  'post_type' => 'product',
   'post_status' => 'publish',
   'posts_per_page' => 2,
  'paged' => $paged,
   'meta_query' => array( 
       array(
        'key' => 'pa_size',
        'value' => array($sizeMin, $sizeMax),
        'compare' => 'BETWEEN',
        'type' => 'NUMERIC'
        )
     );         
  );

然后我尝试使用tax_query,但我找不到在两个值之间得到一个术语的方法。

$args = array(
  'post_type' => 'product',
   'post_status' => 'publish',
   'posts_per_page' => 2,
  'paged' => $paged,
   'tax_query' => array( 
       array(
            'taxonomy' => 'pa_size',
            'field' => 'slug',
            'terms' => $sizevalue
        )
     );         
  );

无法理解这是不可能的,但我认为值必须是一个字符串,因此它不能介于两者之间。

现在我在显示它们时在我的foreach循环中对它们进行排序但是我的分页不起作用。

1 个答案:

答案 0 :(得分:0)

我的结论是你不能用woocommerce产品属性来做这件事,因为它们是基于文本的,我做了一些Advancec自定义字段并像这样使用它们

$args = array(
         'post_type' => 'product',
         'post_status' => 'publish',
         'posts_per_page' => 2,
         'paged' => $paged,
         'meta_query' => array( 
               'relation' => 'AND,
               array(
                'key' => 'myCutsomField',
                'value' => array($sizeMin, $sizeMax),
                'compare' => 'BETWEEN',
                'type' => 'NUMERIC'
                ),
                array(
                'key' => 'myCutsomField2',
                'value' => array($valueMin, $valueMax),
                'compare' => 'BETWEEN',
                'type' => 'NUMERIC'
                )
             );  

$products = new WP_Query( $args );