WordPress Rest API获取用户邮箱、昵称、登录名等更多信息
2022-02-23
WordPress Rest API获取特定用户资料接口:
GET /wp/v2/users/<id>
官方手册:https://developer.wordpress.org/rest-api/reference/users/#retrieve-a-user
实际调用时,所列字段并不能全部返回,多是涉及隐私的部分,如邮箱等。
别无他法,暂时只能手动拓展:
function get_profile_fields( $object, $field_name, $request ) {
$user_info = get_user_by( 'id', $object['id'] );
$profile = array (
// 'id' => $user_info->id,
// 'user_first_name' => $user_info->first_name,
// 'user_last_name' => $user_info->last_name,
'user_name' => $user_info->user_login,
'user_email' => $user_info->user_email,
// 'user_nickname' => $user_info->user_nickname,
'user_display_name' => $user_info->display_name,
);
return $profile;
}
function add_profile_fields() {
register_rest_field(
'user',
'profile',
array(
'get_callback' => 'get_profile_fields',
'update_callback' => null,
'schema' => null,
)
);
}
add_action( 'rest_api_init', 'add_profile_fields' );
在WordPress主环境中,用户的一切信息都能抓取,用register_rest_field注册新对象profile,按需返回数据。
更推荐的做法是返回的数据最好隐藏部分,不要完整返回。
// hideSensitive 自定义敏感字符串处理
// 比如邮箱返回类似:2323******23@qq.com
user_email' => hideSensitive($user_info->user_email),
(版权归cpury.com所有,转载请注明出处。)