我正在建立一个拥有大约 7500 个用户的网站。我想要的是获取我所有的用户及其元数据,并通过我自己构建的 rest api 调用将其返回给我。目前我很难返回我们所有的用户元数据,而不仅仅是一个用户的元数据。我已经构建了自定义端点并且可以成功返回用户add_action( 'rest_api_init', 'my_register_route' );function my_register_route() { register_rest_route( 'map/v1', 'test', array( 'methods' => 'GET', 'callback' => 'custom_phrase', ) );}function custom_phrase() { $users = get_users( array( 'fields' => array( 'ID' ) ) );foreach($users as $user_id){ return (get_user_meta ( $user_id->ID)); }}我希望端点将我的所有用户 meta_data 和 user_data 一起返回,而不仅仅是索引中的最终用户。更新:我觉得我快到了,但数组中的每个索引都返回完全相同的信息。更不用说我在获取 Active_Memberships 值方面以某种方式不成功,该值是一个数组,然后才到达我的身边。function custom_phrase($request_data) { $parameters = $request_data->get_params(); $state = $parameters['state']; $users = get_users(array( 'meta_key' => 'active state membership', 'meta_value' => $state, )); $stack = array(); foreach($users as $user_id) { $user_meta = get_user_meta ($user_id -> ID); $obj->display_name = $user_id -> display_name; $obj->memberships = $user_meta -> active_memberships; array_push($stack, $obj); } return $stack;}
1 回答
温温酱
TA贡献1752条经验 获得超4个赞
您在循环中使用 return,因此它将在第一次迭代时返回。
只需创建一个变量来存储 meta :
function custom_phrase() {
$users = get_users( array( 'fields' => array( 'ID' ) ) );
$data = [];
foreach($users as $user_id){
$data []= get_user_meta ( $user_id->ID);
}
return $data;
}
- 1 回答
- 0 关注
- 109 浏览
添加回答
举报
0/150
提交
取消