①【WordPress】ユーザー登録用のAPIエンドポイント

Kotlin

functions.php

function register_user(WP_REST_Request $request) {
    global $wpdb;
    $username = sanitize_text_field($request->get_param('username'));
    $password = sanitize_text_field($request->get_param('password'));

    if (!$username || !$password) {
        return new WP_Error('missing_data', 'ユーザー名とパスワードは必須です', array('status' => 400));
    }

    // ユーザーが既に存在するかチェック
    if (username_exists($username)) {
        return new WP_Error('user_exists', 'このユーザー名は既に使われています', array('status' => 400));
    }

    // 新規ユーザー登録
    $user_id = wp_insert_user(array(
        'user_login' => $username,
        'user_pass' => $password
    ));

    if (is_wp_error($user_id)) {
        return new WP_Error('register_failed', 'ユーザー登録に失敗しました', array('status' => 500));
    }

    return rest_ensure_response(array('status' => 'success', 'user_id' => $user_id));
}

add_action('rest_api_init', function () {
    register_rest_route('custom-api/v1', '/register/', array(
        'methods' => 'POST',
        'callback' => 'register_user',
        'permission_callback' => '__return_true'
    ));
});

APIエンドポイントの確認

コードを書いたら、https://xxx.com/wp-json/custom-api/v1/register/ にアクセスします

{"code":"rest_no_route","message":"URL \u3068\u30ea\u30af\u30a8\u30b9\u30c8\u30e1\u30bd\u30c3\u30c9\u306b\u4e00\u81f4\u3059\u308b\u30eb\u30fc\u30c8\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002","data":{"status":404}}

と表示された場合、エンドポイントが登録されていないので、パーマリンクを更新します

パーマリンクの更新

WordPress管理画面の「設定」>「パーマリンク」から「変更を保存」します

REST APIの有効化

Conoha Wingのセキュリティで「海外アクセス制限」よりREST APIが無効化されていたら、有効にします

BACK