説明
wp_insert_user() は、新規ユーザーを作成する関数です。権限グループや表示名など、詳細な項目を指定できます。
基本構文
wp_insert_user( array|object|WP_User $userdata ): int|WP_Error
引数
$userdata:user_login、user_pass、user_email、roleなど
戻り値
ユーザーID。失敗時は WP_Error。
使い方(サンプル)
$id = wp_insert_user( array(
'user_login' => 'taro',
'user_pass' => wp_generate_password(),
'user_email' => 'taro@example.com',
'role' => 'editor',
) );
注意点
IDを含めると既存ユーザーの更新になります(更新にはwp_update_user()を推奨)。- パスワードは平文で渡すと自動でハッシュ化されます。
実務での使いどころ
- ロールや表示名など、詳細を指定して、ユーザーを作るとき。
- 既存のユーザーの更新には、
wp_update_user()を使う(IDを指定した更新では、user_passが、ハッシュ化されずに保存されるため)。
よくあるミスと対処
- 戻り値が
WP_Errorのときを、考えていない。 IDを含めて、新規作成のつもりが、既存のユーザーを更新してしまう。- 新規作成では、平文のパスワードを渡せば、自動でハッシュ化される。
IDを指定した更新では、渡した値が、そのまま保存される。更新にはwp_update_user()を使う。
NG例
wp_insert_user( array( 'user_login' => 'taro', 'user_pass' => 'pass', 'role' => 'administrator' ) ); // 確認がなく、管理者権限を付けている
OK例
$user_id = wp_insert_user( array(
'user_login' => 'taro',
'user_pass' => wp_generate_password(),
'user_email' => 'taro@example.com',
'role' => 'subscriber',
) );
if ( is_wp_error( $user_id ) ) {
return;
}
使い分け早見表
| やりたいこと | 使うもの |
|---|---|
| 詳細を指定して作る・更新する | wp_insert_user() |
| 最小限の項目で作る | wp_create_user() |
| 既存のユーザーを更新する | wp_update_user() |
関連項目
wp_create_user()、wp_update_user()、wp_generate_password()
公式リファレンス:wp_insert_user() | Function | WordPress Developer Resources

コメント