WordPressで管理人アカウントを削除したときの対処

Pocket

とあるプラグインを作っていて、wp_delete_user()を乱用していたら、管理人用アカウントが削除されてしまった。そんあときの対処法をメモ。

状況

自分の場合、

  • 管理人アカウントでログインできない
  • メールで再設定しようにも、アカウントが削除されているためできない
  • 他のアカウント情報もわからない/全て削除されている

という状態だった。

対処法

  1. wp-config.phpを参考に、データベースにアクセスする。userとpasswordでdbにアクセスできるはず。
  2. ***_users に、新しくユーザーを作る。わかり易いIDにする(1とか)。***_は$table_prefixの値。 例:
    INSERT INTO `your_db_name`.`***_users` (`ID` ,`user_login` ,`user_email` )
    VALUES ('1', 'admin', 'your-email@some-domain.com');
  3. ***_usermetaに、meta_key : ‘***_capabilities’, meta_valueに
    a:1:{s:13:"administrator";s:1:"1";}

    を入れる。ちなみにこれは administrator=1 をarrayに入れてserialize()したもの。

  4. 再度、wp-login.php →パスワード忘れで、上記でdbに入れたメールアドレスを入力
  5. メールを確認し、パスワードを再設定する
  6. wp-admin→ユーザー から、諸々ユーザー設定を入力する

この投稿へのコメント

  1. レイ said on 2012年12月21日 at 2:52 PM

    はじめまして、こんにちは。
    管理人アカウント削除で検索してたどり着きました。
    私も危うく同じような状況に陥りそうになったのでお聞きしたいのですが、
    「データベースにアクセスする」とは、phpmyadminで作業するということでしょうか?
    「新しくユーザーを作る(INSERT INTO~の部分)」は、どこに書けばよいのでしょうか?
    もしよろしければご教授いただけると幸いです。

    • ykawato said on 2012年12月21日 at 3:07 PM

      phpmyadminにアクセスできたら簡単です。
      できない場合、かなり強引な方法としては、表示できるページにて
      global $wpdb;
      してから$wpdb->query( sql文 ); ということもできます。
      十分注意して、やってください。
      http://codex.wordpress.org/Class_Reference/wpdb

  2. レイ said on 2012年12月21日 at 4:02 PM

    早速のお返事ありがとうございます!
    phpmyadminでできるのですね。
    使い方がまだよく分かりませんが、調べてみようと思います!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL