wp_insert_user() の使い方|説明・引数・注意点

説明

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

コメント

タイトルとURLをコピーしました