WordPress のユーザーを DB に直接追加する

こんにちは、広報部です。

冬期休暇のたるみが抜け、仕事にもエンジンがかかってくるころでしょうか。

そのなか今回は、弊社エンジニアによる【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.完了

最後に

オペレーションが終わった後は消したほうがよいと思うので、忘れないように削除しましょう

株式会社スノウロビン's job postings
2 Likes
2 Likes

Weekly ranking

Show other rankings