#wordpress #api #rest
Вопрос:
я пытаюсь создать конечную точку, чтобы сделать регистрацию доступной через api на моем сайте WordPress. я разработал следующий код, но когда я пытаюсь вызвать api через почтальона, я получаю эту ошибку «rest_no_route». Я создал свой собственный плагин в папке плагинов в моем wp-контенте и поместил туда этот скрипт.
Это мой код:
add_action('rest-api-init', function (){
register_rest_route('custom/v1', '/register',array(
'methods' => 'POST',
'callback' => 'api_register_new_user',
'permission_callback' => function () {
return true;
}
));
});
function api_register_new_user(WP_REST_Request $request): object
{
$response = (object)[] ;
$body = $request.get_body();
$body = json_encode($body);
$user = register_new_user(body['username'],$body['password']);
if(! is_wp_error($user)){
$response->status = 200;
$response->message = "OK";
$response->data->user_id = $user;
}else{
$response->status = 501;
$response->message = $user;
$response->data->user_id = "";
}
return $response;
}
Комментарии:
1.
add_action('rest-api-init', ...)
должно бытьadd_action('rest_api_init',...)
. Обратите внимание на подчеркивания и дефисы в названии действия.2. Большое спасибо, я теряю день из-за этой ошибки
3. Рад, что это помогло. Я опубликовал свое предложение в качестве ответа, чтобы вы могли принять его как решение.
Ответ №1:
add_action('rest-api-init', ...)
должно быть add_action('rest_api_init',...)
. Обратите внимание на подчеркивания и дефисы в названии действия.