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

WordPress get_users指定fields参数返回重复ID字段的疑问

WordPress get_users函数返回重复ID字段的原因分析

在WordPress站点中使用get_users函数获取用户数据时,遇到了一个奇怪的问题:当传入fields参数为数组(比如['id','display_name']或['ID','display_name']),返回结果里会同时出现ID和id两个重复字段;但如果只指定'ID'作为fields参数,只会返回单个ID字段。下面具体分析这个重复问题的成因。

示例代码

// 两种写法表现一致
// $args = array(
//     'fields' => array('ID','display_name')
// );
$args = array();
$args['fields'] = array('id','display_name');
$users = get_users($args);
echo json_encode($users);

返回结果

[{"ID":"1","display_name":"it@hennig.ame.com","id":"1"},{"ID":"7","display_name":"John Brooks","id":"7"},{"ID":"11","display_name":"Josh Green","id":"11"},{"ID":"13","display_name":"Karyn Ross","id":"13"},{"ID":"9","display_name":"Mark Cunningham","id":"9"},{"ID":"6","display_name":"Noah Goellner","id":"6"},{"ID":"14","display_name":"Roderick Hennl","id":"14"},{"ID":"8","display_name":"Randy Olson","id":"8"},{"ID":"12","display_name":"skylar@hennig.ame.com","id":"12"},{"ID":"5","display_name":"Troy Davidson","id":"5"}]

问题成因

这个重复问题的核心在于WordPress对get_users函数fields参数的内部处理逻辑:

  • 当fields传入数组时,get_users会先从数据库查询用户数据,然后通过WP_User对象处理字段的映射和输出。
  • 在WordPress用户系统中,ID是用户对象的原生核心属性(大写形式),id是它的别名。当你在fields数组里传入小写的id时,系统会自动映射到大写ID的取值,但同时保留你传入的小写id作为键名;而WP_User对象本身默认包含ID字段,最终就导致返回结果里同时出现两个键、取值完全相同的情况。
  • 当只指定单个'ID'作为fields参数时,WordPress会直接返回纯值数组(比如[1,7,11,...]),不会生成带键名的关联数组,自然不会出现重复字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 17:37:03