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

如何使用WP_User_Query按last_name、first_name对用户列表排序

WP_User_Query 按last_name、first_name多字段排序实现

从WordPress 4.2版本开始,WP_User_Query原生支持多meta字段关联排序,不需要手动拼接SQL语句,只需要在查询参数中给需要排序的meta键定义独立子句,再在orderby规则中按优先级指定排序顺序即可。

你之前单字段排序的写法可以调整为如下多字段版本:

$args  = array(
    // 定义查询用到的meta键,为每个键设置可引用的别名
    'meta_query' => array(
        'relation' => 'AND',
        'last_name_sort' => array(
            'key'     => 'last_name',
            'compare' => 'EXISTS',
        ),
        'first_name_sort' => array(
            'key'     => 'first_name',
            'compare' => 'EXISTS',
        ),
    ),
    // 按别名指定排序规则,书写顺序越靠前排序优先级越高
    'orderby' => array(
        'last_name_sort'  => 'ASC',
        'first_name_sort' => 'ASC',
    ),
);
$user_query = new \WP_User_Query( $args );

参数说明

  • last_name_sort、first_name_sort是自定义别名,命名没有强制要求,只要和orderby数组里的键名一一对应即可
  • 排序方向可按需调整,升序用ASC,降序替换为DESC即可
  • 子句中compare => 'EXISTS'表示仅查询存在对应meta字段的用户,如果需要把没有填写姓/名的用户也纳入结果,删除对应子句的compare参数即可
  • 该写法是WordPress官方支持的标准用法,不需要额外挂载过滤器修改原生查询逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 14:01:04