株式会社スノウロビンでは一緒に働く仲間を募集しています
こんにちは、広報部です。
冬期休暇のたるみが抜け、仕事にもエンジンがかかってくるころでしょうか。
そのなか今回は、弊社エンジニアによる【WordPress のユーザーをDBに直接追加する方法】をお届けします。
はじめに
WordPress バージョン 4.8.2 での内容です。お気をつけください。
背景
- お客さま「WordPress の更新をしてほしい」
- WordPress のコントロールパネルにログインするためのユーザーが必要
- すでに、存在する管理者権限を使って新しいユーザーを発行してもいいけど
- お客さまにパスワードを聞く必要がある
- or
- DB を直接編集して、すでに存在するユーザーのメールアドレスを自分のものにしてパスワードリセット
- 納品時にお客さまにパスワードリセットしてもらう必要があるので微妙
方法
- wp_users だけコピーしたら、「アクセス権限がありません! 」 みたいなこと言われて詰まった
- WordPress では、ユーザー追加時に wp_users, wp_usermeta にレコードを挿入するよう
- すでに存在するユーザーのデータをコピーしたらええ
- 以下、すでに存在するコピーする対象のユーザーの ID が 1 だと仮定
1. wp_users のレコードをコピーする
INSERT INTO `wp_users` (user_login, user_pass, user_nicename, user_email, user_url, user_registered, user_activation_key, user_status, display_name) SELECT user_login, user_pass, user_nicename, user_email, user_url, user_registered, user_activation_key, user_status, display_name FROM `wp_users` WHERE ID = 1
2. 追加したレコードの user_email
を自分のものに変更する
3. wp_usermeta のレコードをコピーする
【注意】SELECT 2
となっている部分の 2
は 1. で挿入したレコードの ID にしてください!
INSERT INTO `wp_usermeta` (user_id, meta_key, meta_value) SELECT 2, meta_key, meta_value FROM `wp_usermeta` WHERE user_id = 1
4.パスワードリセットを行う
/wp/wp-login.php?action=lostpassword
にアクセス- 2. で変更したメールアドレスを入力する
- メールが届くので、そこに従ってパスワードリセット
5.完了
最後に
オペレーションが終わった後は消したほうがよいと思うので、忘れないように削除しましょう