You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将WooCommerce默认排序修改为「自定义排序+日期」而非「自定义排序+名称」

WooCommerce 商品目录默认排序调整方案

需求说明

将原有默认的「自定义排序+名称」规则,调整为「自定义排序+日期」:已设置自定义排序的商品优先按自定义规则排序,未设置自定义排序的商品默认按发布日期倒序排列。
效果示例:
效果示例图

原代码失效原因

原有代码存在两处逻辑错误:

  • 多字段排序的参数写法不符合WordPress查询规范,无法同时触发两个排序规则
  • 清空meta_key的操作会干扰WooCommerce原生自定义排序逻辑的运行

正确实现代码

将以下代码添加到主题functions.php文件中即可生效:

add_filter('woocommerce_get_catalog_ordering_args', 'adjust_catalog_default_order');
function adjust_catalog_default_order( $args ) {
    // 仅默认排序场景下生效,不影响用户主动选择的其他排序方式
    if ( empty($_GET['orderby']) || $_GET['orderby'] === 'menu_order' ) {
        $args['orderby'] = [
            'menu_order' => 'ASC', // 优先按自定义排序(menu_order)升序
            'date' => 'DESC' // 自定义排序值相同时按发布日期倒序
        ];
        unset($args['meta_key']);
    }
    return $args;
}

生效验证

添加代码后清空网站缓存、WooCommerce缓存后刷新商品列表页即可:

  • 已设置自定义排序权重的商品,保持原有自定义顺序展示
  • 未设置自定义排序的商品,按最新发布在前的规则倒序排列

内容的提问来源于stack exchange,提问作者Jonas Borneland

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 09:39:02