WooCommerce产品排序所有可用字段完整列表查询
WooCommerce产品排序可用字段汇总
你在通过woocommerce_get_catalog_ordering_args钩子自定义产品排序规则时,所有可查询的产品关联字段都可以作为排序依据,没有单独的封闭专属字段列表,常用字段可以分为三类:
一、WooCommerce产品原生专属字段
这类是WooCommerce产品特有的业务字段,默认排序功能已经内置支持:
price:产品常规售价,对应元数据_pricepopularity:产品销量,对应元数据_total_sales,WooCommerce会自动完成销量统计rating:产品平均用户评分,基于评论评分自动计算sku:产品SKU编码,对应元数据_skustock_quantity:产品库存数量,对应元数据_stock
二、继承自WordPress文章体系的通用字段
WooCommerce产品本质是product类型的自定义文章,所以WordPress文章表的原生字段全部支持直接排序,你示例代码中用到的modified就属于这类:
date:产品首次发布时间,默认「按最新排序」使用的就是该字段modified:产品最后修改时间title:产品标题name:产品固定连接别名(slug)ID:产品系统IDauthor:产品发布作者IDcomment_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
相关产品推荐
相关产品推荐

