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

WooCommerce产品排序所有可用字段完整列表查询

WooCommerce产品排序可用字段汇总

你在通过woocommerce_get_catalog_ordering_args钩子自定义产品排序规则时,所有可查询的产品关联字段都可以作为排序依据,没有单独的封闭专属字段列表,常用字段可以分为三类:

一、WooCommerce产品原生专属字段

这类是WooCommerce产品特有的业务字段,默认排序功能已经内置支持:

  • price:产品常规售价,对应元数据_price
  • popularity:产品销量,对应元数据_total_sales,WooCommerce会自动完成销量统计
  • rating:产品平均用户评分,基于评论评分自动计算
  • sku:产品SKU编码,对应元数据_sku
  • stock_quantity:产品库存数量,对应元数据_stock

二、继承自WordPress文章体系的通用字段

WooCommerce产品本质是product类型的自定义文章,所以WordPress文章表的原生字段全部支持直接排序,你示例代码中用到的modified就属于这类:

  • date:产品首次发布时间,默认「按最新排序」使用的就是该字段
  • modified:产品最后修改时间
  • title:产品标题
  • name:产品固定连接别名(slug)
  • ID:产品系统ID
  • author:产品发布作者ID
  • comment_count:产品评论总数
  • menu_order:产品后台手动设置的排序权重,后台拖拽排序、默认「自定义排序」选项都基于该字段
  • rand:随机排序,属于SQL查询层面的规则,不是实体存储字段

三、可自定义扩展的排序字段

除上述固定字段外,所有和产品绑定的自定义元数据、产品属性都可以配置为排序依据,只需要在返回的排序参数中指定对应的元键即可,参考示例:

add_filter( 'woocommerce_get_catalog_ordering_args', 'enable_catalog_ordering_by_wholesale_price' );
function enable_catalog_ordering_by_wholesale_price( $args ) {
    if ( isset( $_GET['orderby'] ) && 'wholesale_price' == $_GET['orderby'] ) {
        return array(
            'orderby'  => 'meta_value_num', // 数字类型字段用meta_value_num,文本类型字段用meta_value
            'order'    => 'ASC',
            'meta_key' => '_wholesale_price', // 替换为实际需要排序的自定义元键名
        );
    }
    return $args;
}

提示:如果需要排序产品全局属性,直接使用属性对应的pa_开头的元键即可,比如颜色属性对应pa_color,配置逻辑和普通自定义元字段完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 23:51:24