2017-08-03 5 views
0

空でWooCommerceの特定のカテゴリの製品を並べ替える必要があります。さまざまな組み合わせを試しましたが、仕事はしません。同様に私は喘鳴を試みた特定カテゴリのskuによるWoo Commerce製品の並べ替え

 $args = array(
      'post_type' => 'product', 
      'post_status' => 'publish', 
      'ignore_sticky_posts' => 1, 
      'orderby' => 'sku', 
      'order' => 'asc', 
      'posts_per_page' => $atts['per_page'], 
      'meta_query' => $meta_query, 
      'tax_query' => array(
       'relation' => 'OR', 

       array(
        'taxonomy' => 'product_cat', 
        'terms' => array_map('sanitize_title', explode(',', $atts['category'])), 
        'field' => 'slug', 
        'operator' => $atts['operator'] 
       ), 
       array(
        'taxonomy' => 'product_tag', 
        'terms' => array_map('sanitize_title', explode(',', $atts['tags'])), 
        'field' => 'slug', 
        'operator' => $atts['operator'] 
       ) 
      ) 
     ); 



$products = new WP_Query($args); 

ここで、$ attrs []データはshortcodeパラメータから来ています。しかしそれはskuによって製品を分類しないのですか?

お手数をおかけします。

+0

。それは空の代わりにSKUになります –

答えて

0

プロダクトsku(_sku)はメタ値として保存されるため、単に「order by sku」と言うことはできず、メタ値で順序付けし、メタキーを_skuに設定する必要があります。スキューセットがない場合、製品は表示されません。

例:あなたのSKUがSKUのある文字列は、代わりに "meta_value" を使用する場合は、 "meta_value_num" を使用する必要がある数値である

args = array(
    'post_type' => 'product', 
    'meta_key' => '_sku', 
    'post_status' => 'publish', 
    'ignore_sticky_posts' => 1, 
    'orderby' => 'meta_value_num', 
    'order'  => 'ASC', 
    'meta_query' => array(
     array(
      'key'  => '_sku', 
      'compare' => 'EXISTS', 
     ), 
    ), 
); 

場合。

あなたはここでそれについての詳細を読むことができます - 問題の説明にタイプミスがあり>https://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters

+1

恐ろしい。魅力のように働いた。ありがとう。心から感謝する。 –

関連する問題