我目前正在尝试创建一个API,该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的工作方式或应该如何使用它吗? :/
答案 0 :(得分:0)
万一遇到同样的问题,一位WordPress用户在其论坛上回答了我的帖子,
解决方案: 变量$ wp_rest_additional_fields,我在文档中找不到任何有关它的信息,但是至少var确实存在于全局范围中
因此,使用此代码,一切正常
formdata.append("file",fil[0]);