Пользовательский api конечной точки WordPress для регистрации новых пользователей [rest_no_route]

#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',...) . Обратите внимание на подчеркивания и дефисы в названии действия.