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

如何调整代码实现商品按库存状态排序后再按字母顺序排列?

调整商品排序代码实现双重排序需求

你的需求是先按库存状态(在售商品优先)排序,同库存状态下再按商品名称字母顺序排列,只需修改现有代码的orderby参数为多条件排序即可:

修改后的完整代码:

add_action( 'pre_get_posts', 'sort_products_by_stock_amount' );
function sort_products_by_stock_amount( $query ) {
    // 仅在前端商品列表页面修改主查询
    if ( ! is_admin() && $query->is_main_query() && ( is_shop() || is_product_category() || is_product_tag() ) ) {
        // 设置多条件排序:先按库存数值降序,再按商品标题升序
        $query->set( 'orderby', array(
            'meta_value_num' => 'DESC',
            'title' => 'ASC'
        ) );
        $query->set( 'meta_key', '_stock' );
    }
}

代码调整说明:

  • 将原单一的orderby值改为数组形式,实现多维度排序逻辑
  • 第一排序维度:meta_value_num => 'DESC',保留原有库存优先级(库存1的在售商品排在库存0的售罄商品之前)
  • 第二排序维度:title => 'ASC',让同库存状态的商品按标题字母顺序升序排列(若需降序可改为DESC)
  • 保留meta_key => '_stock'指定排序依赖的库存字段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 21:12:03