如何为Elementor查询操作设置第二个orderby排序值?
实现自定义文章多条件排序(先按meta_value,再按标题)
要实现先按fuel_type_id元字段数值排序,再按文章标题二次排序,只需将orderby参数改为数组格式,就能定义多优先级的排序规则。
修改后的代码如下:
add_action( 'elementor/query/jet-smart-filters', function( $query ) { // 指定用于排序的元字段 $query->set( 'meta_key', 'fuel_type_id' ); // 设置多条件排序:先按元字段数值,再按标题 $query->set( 'orderby', [ 'meta_value_num' => 'ASC', 'title' => 'ASC' ]); // 若两个排序条件方向一致,也可简化为:$query->set( 'order', 'ASC' ); });
关键说明:
orderby数组的顺序决定排序优先级:先按第一个规则排序,当该规则的值相同时,自动触发第二个规则排序meta_value_num用于数值类型的元字段排序,避免字符串排序导致的数值顺序错乱- 每个排序规则可独立设置方向(
ASC升序/DESC降序),比如想让标题降序,只需把title对应的值改成DESC
内容的提问来源于stack exchange,提问作者mickdeez
相关产品推荐
相关产品推荐

