按sku为特定类别排序Woo Commerce产品

时间:2017-08-03 18:02:43

标签: wordpress woocommerce

我需要在天空中为WooCommerce中的特定类别分类产品。尝试了不同的组合,但没有工作。就像我试过吼声一样

      $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 []数据来自短代码参数。但它没有按sku对产品进行排序?

非常感谢帮助。

1 个答案:

答案 0 :(得分:0)

产品sku(_sku)保存为元值,因此您不能简单地说“按sku排序”,您应该按元值排序,并将元键设置为_sku。如果他们没有sku设置,则不会显示产品。

示例:

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',
        ),
    ),
);

如果你的sku是数字,你应该使用“meta_value_num”如果sku是字符串,那么请使用“meta_value”。

你可以在这里阅读更多相关信息 - > https://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters