Woocommerce产品查询 - order_by

时间:2016-10-25 07:13:28

标签: wordpress woocommerce

我在template.php文件中使用查询按类别显示wooCommerce个产品。

我的查询如下:

<?php
   $args = array(
     'post_type' => 'product',
     'stock' => 1,
     'posts_per_page' => 99,
     'tax_query' => array(
          'relation' => 'OR',
           array(
              'taxonomy' => 'product_cat',
              'field' => 'slug',
              'terms' => 'system_components',
              'menu_order' => 'asc'
           ),
           array(
              'taxonomy' => 'product_cat',
              'field' => 'slug',
              'terms' => 'add-ons',
              'menu_order' => 'asc'
           )
      ),
      'meta_query' => array(
            array(
               'key'       => '_visibility',
               'value'     => 'hidden',
               'compare'   => '!='
      )
    ));


   $loop = new WP_Query($args);
   if ($loop->have_posts()) {
     while ($loop->have_posts()) :
          $loop->the_post(); ?>
            .....

这很有效,我可以看到我想要的产品和我不想要的产品。

我唯一不理解的是'menu_order' => 'ASC'似乎不起作用。

我在产品设置中输入菜单顺序并不重要,订单不会改变。

我在这里做错了什么?

由于

2 个答案:

答案 0 :(得分:4)

'menu_order' => 'asc'移除tax_query部分并添加到main,这应该有效:

$args = array(
    'post_type' => 'product',
    'stock' => 1,
    'posts_per_page' => 99,
    'orderby' => 'menu_order',
    'order' => 'ACS',
    'tax_query' => array(
        'relation' => 'OR',
        array(
              'taxonomy' => 'product_cat',
              'field' => 'slug',
              'terms' => 'system_components'
        ),
        array(
              'taxonomy' => 'product_cat',
              'field' => 'slug',
              'terms' => 'add-ons'              
        )
    ),
    'meta_query' => array(
        array(
            'key'       => '_visibility',
            'value'     => 'hidden',
            'compare'   => '!='
        )
    ));

正如您在documentation中所看到的,tax_query没有参数menu_order

答案 1 :(得分:0)

请在您的产品中设置页面顺序。

为此,请转到“管理员”面板。单击左侧菜单中的“产品”菜单,然后编辑产品并设置页面顺序。