我目前正在尝试创建一个用于创建应用程序的 API 为此,我需要一个自定义端点,该端点只能从已登录的用户访问,目前使用以下代码完成:
register_rest_route( 'wp/v2', 'private/me',array(
'methods' => WP_REST_Server::READABLE,
'callback' => 'get_private'
));
function get_private($request) {
$user = (array) wp_get_current_user();
$user["data"] = (array) $user["data"];
unset($user['data']['user_pass']);
// $user = get_user_by('id', 13);
if (empty($user)) {
return new WP_Error( 'empty_category', 'there is no post in this category', array('status' => 404) );
}
$response = new WP_REST_Response($user['data']);
$response->set_status(200);
return $response;
}
目前它返回一个没有'user_pass'的用户对象
然后,当我使用“register_rest_field”函数时,我什么也得不到(如果在任何默认 api 用户端点上设置,该函数就可以工作
register_rest_field('private/me',
'rank_number',
array(
'get_callback' => 'get_rank_number',
'update_callback' => null,
'schema' => null
)
);
function get_rank_number ( $user ) {
return (int) get_user_meta($user['id'], 'ck_user_ranking_score_number', true);
}
问题是,我不知道如何让路线读取已注册休息字段的列表,也不知道是否应该这样做
目前,我正在尝试通过扩展 WP_REST_Controller 类来实现它,因为它看起来可以工作
有人可以帮助我了解 API 的工作原理或应该如何使用它吗?:/
慕少森