我正在尝试使用 get_users 返回我的 WordPress 网站的用户。但是,当我将字段数组作为参数传递时,我在结果中发现 ID 在结果中出现了两次。如果我只发送“ID”而不是添加显示名称,那么我只会获得 1 个 ID。
//$args = array(
//'fields' => array('ID','display_name')
//); - same behavior as below
$args = array();
$args['fields'] = array('id','display_name');
$users = get_users($args);
echo json_encode($users);
结果:
[{"ID":"1","display_name":"[email protected]","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":"[email protected]","id":"12"},{"ID":"5","display_name":"Troy Davidson","id":"5"}]
get_users
始终包含 user_login
字段,即使未在 fields 参数中指定也是如此。
如果只获取用户ID和显示名称,可以稍微修改一下代码。
$args = array();
$users = get_users($args);
$filtered_users = array();
foreach ($users as $user) {
$filtered_users[] = array(
'ID' => $user->ID,
'display_name' => $user->display_name
);
}
echo json_encode($filtered_users);