猿问

如何使用元数据获取所有用户?

我正在建立一个拥有大约 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;

}


蓝山帝景
浏览 111回答 1
1回答

温温酱

您在循环中使用 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;}
随时随地看视频慕课网APP
我要回答