Php 在FacetWP中排序价格

Php 在FacetWP中排序价格,php,wordpress,sorting,zero,facetwp,Php,Wordpress,Sorting,Zero,Facetwp,在FacetWP插件(用于Wordpress)中,我想在“price”之后对结果进行排序,因此我添加了一个新的自定义过滤器,如他们的文档中所述。目前,排序结果如下所示: 4.450欧元 399欧元 3.990欧元 我认为,代码不能识别最后的零值。 这是我的代码: add_filter( 'facetwp_sort_options', function( $options, $params ) { $options['price_desc'] = array( 'label

在FacetWP插件(用于Wordpress)中,我想在“price”之后对结果进行排序,因此我添加了一个新的自定义过滤器,如他们的文档中所述。目前,排序结果如下所示:

  • 4.450欧元
  • 399欧元
  • 3.990欧元
  • 我认为,代码不能识别最后的零值。 这是我的代码:

    add_filter( 'facetwp_sort_options', function( $options, $params ) {
        $options['price_desc'] = array(
            'label' => 'Price (Highest)',
            'query_args' => array(
                'orderby' => 'price',
                'meta_key' => 'price',
                'order' => 'DESC',
            )
        );
        return $options;
    }, 10, 2 );
    
    已经尝试了“usort”功能和替代的“price\u raw\u short”值(由mobile.de提供),但没有效果。

    您是否有Woocommerce? 然后你需要告诉它这是一个数字。此外,meta_键是
    \u price

    升序和降序排序的示例:

    $options['price'] = array(
        'label' => __( 'Price: low to high', 'woocommerce' ),
        'query_args' => array(
            'orderby' => 'meta_value_num',
            'meta_key' => '_price',
            'order' => 'asc',
        )
    );
    
    $options['price-desc'] = array(
        'label' => __( 'Price: high to low', 'woocommerce' ),
        'query_args' => array(
            'orderby' => 'meta_value_num',
            'meta_key' => '_price',
            'order' => 'desc',
        )
    );