Woocommerce 短代码按价格排序不起作用

Woocommerce shortcode orderby price is not working

我昨天花了几个小时解决了我的问题,但没有成功。 我想按价格(从低到高)对我的特定品牌的产品进行排序,所有其他排序选项都可以很好地使用标题、ID 等。但是我自己声明的 $arg regular_price 不起作用。

我已将此代码添加到我的主题地图中的 functions.php:

add_filter( 'woocommerce_shortcode_products_query', 'woocommerce_shortcode_products_orderby' );
function woocommerce_shortcode_products_orderby( $args ) 
{  $standard_array = array('menu_order','title','date','rand','id');    
if( isset( $args['orderby'] ) && !in_array( $args['orderby'], $standard_array ) ) 
{  $args['regular_price'] = $args['orderby'];       
   $args['orderby']  = 'meta_value_num'; }  
  return $args;}

我使用这个简码:

[product_attribute attribute="merk" filter="bait footwear" per_page="80" columns="4" orderby="regular_price" order="asc"]

结果在这里: http://vintagekledingwinkel.nl/aanbiedingen/bait-footwear/

我错过了什么?

试试这个代码:

    add_filter( 'woocommerce_shortcode_products_query', 'woocommerce_shortcode_products_orderby' );

    function woocommerce_shortcode_products_orderby( $args ) {

        $standard_array = array('menu_order','title','date','rand','id');

        if( isset( $args['orderby'] ) && !in_array( $args['orderby'], $standard_array ) ) {
            $args['meta_key'] = $args['orderby'];
            $args['orderby']  = '_regular_price'; 
        }

        return $args;

    }

并使用下面的短代码:

[product_attribute attribute="merk" filter="bait footwear" per_page="80" columns="4" orderby="_regular_price" order="asc"]

让我知道输出。