我在我的活动主题的functions.php
文件中编写了以下代码:
add_filter( 'woocommerce_get_catalog_ordering_args',
'custom_woocommerce_get_catalog_ordering_args' );
function custom_woocommerce_get_catalog_ordering_args( $args ) {
$orderby_value = isset( $_GET['orderby'] ) ? woocommerce_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) );
if ( 'random_list' == $orderby_value ) {
$args['orderby'] = 'date';
$args['order'] = 'desc';
$args['meta_key'] = '';
}
return $args;
}
add_filter( 'woocommerce_default_catalog_orderby_options', 'custom_woocommerce_catalog_orderby' );
add_filter( 'woocommerce_catalog_orderby', 'custom_woocommerce_catalog_orderby' );
function custom_woocommerce_catalog_orderby( $sortby ) {
$sortby['random_list'] = 'DESC SORT';
return $sortby;
}
我尝试按Desc排序产品,但产品仍按默认 (ASC) 排序。
如何按DESC排序?
6条答案
按热度按时间brc7rcf01#
您可以使用一个自定义函数挂接在**
woocommerce_product_query
**action hook中,如下所示:测试和作品。
wqlqzqxt2#
你需要先决定你想按哪个字段来排序,价格,标题等。但我已经写了所有可能的方式,你可以使用它,
添加过滤器('woocommerce_get_catalog_ordering_args','custom_query_sort_args');
public function function getString(){
}
6ss1mwsb3#
此代码应添加到您的主题的
functions.php
bvpmtnay4#
这个代码为我工作。
我在这里找到的https://gist.github.com/mikejolley/1622323
hlswsv355#
Mike Jolley的Gist评论中的另一个片段对我很有效:
这迫使最新的产品首先出现,在我的客户的情况下,这只在主商店页面上工作,而不是在产品类别档案中。这个片段修复了它,其他人没有。对我来说更大的问题是为什么WooCommerce仍然有这么多主要的bug!
参考号:https://gist.github.com/mikejolley/1622323
kyks70gy6#