①【WordPress】ユーザー登録用のAPIエンドポイント
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