2017-08-23 25 views
2

私は属性色を持つ商品を持っています。属性値は赤、青、緑です。カスタム検索を作成しようとしていますが、商品を引き出すためのクエリを取得できません。WooCommerceは属性クエリで商品を取得します

$args = array(
    'post_type'  => array('product'), 
    'post_status' => 'publish', 
    'posts_per_page' => -1, 
    'meta_query'  => array( 
     array(
      'key' => '_visibility', 
      'value' => array('catalog', 'visible'), 
      'compare' => 'IN', 
     ) 
    ), 
    'tax_query'  => array( 
     array(
      'taxonomy'  => 'product', 
      'field'   => 'slug', 
      'terms'   => array('blue', 'red', 'green'), 
      'operator'  => 'IN', 
     ), 
    ) 
); 

$products = new WP_Query($args); 

どこが間違っていましたか?

答えて

1

正しい作業クエリがあるので、製品の属性の色の正しい分類は、'pa_color'です:

// The query 
$products = new WP_Query(array(
    'post_type'  => array('product'), 
    'post_status' => 'publish', 
    'posts_per_page' => -1, 
    'meta_query'  => array(array(
     'key' => '_visibility', 
     'value' => array('catalog', 'visible'), 
     'compare' => 'IN', 
    )), 
    'tax_query'  => array(array(
     'taxonomy'  => 'pa_color', 
     'field'   => 'slug', 
     'terms'   => array('blue', 'red', 'green'), 
     'operator'  => 'IN', 
    )) 
)); 

// The Loop 
if ($products->have_posts()): while ($products->have_posts()): 
    $products->the_post(); 
    $product_ids[] = $products->post->ID; 
endwhile; 
    wp_reset_postdata(); 
endif; 

// TEST: Output the Products IDs 
print_r($product_ids); 

このコードはテストされ、機能しています。値(用語)「青」、「赤」、「緑」のColor属性を持つすべての製品を取得します。

+0

残念ながら、それは私のために働いていません。 – user3098629

+0

@ user3098629私はテストサーバーでテストしていますが、私にとっては完璧に動作します。とにかく、属性 "Color"の正しい分類法は 'pa_color'です。すべての製品属性のタクソノミースラッグは、いつも 'pa_'で始まります... – LoicTheAztec

+0

実際の製品には、これが機能するためにセットアップが必要なものはありますか?私は、このクエリ以外のどこにでも表示されている製品を持っています。 – user3098629

関連する問題