WordPressで管理者が登録した情報を忘れたり、管理者をすべて削除してしまった時の対処法


WordPressで構築したサイトでは、複数人で投稿や編集などを行うことがよくあり、管理画面でも複数のユーザーを作成して管理していくことがあります。

その中で、ユーザーによってどのような操作ができるのか、どこまで許可するのか管理権限を設定していくことでしょう。

権限に関しては、管理画面の左メニューにある「ユーザー」からユーザーの一覧へ進み、一覧の「管理者グループ」の項目で確認することができます。

WordPressのユーザーの管理者グループ



一応、権限の変更方法も説明しますと、
ユーザーの一覧画面からユーザーを選択して、「権限グループを変更」のプルダウンオプションから与える権限を選択、最後に「変更」ボタンをクリックと簡単に行えます。

WordPressのユーザーの権限変更


ただ、ユーザー権限を与えたり、変更できるのは、管理者権限が与えられているユーザーだけとなります。

そしてここからが本題ですが、
ユーザーの権限を管理していく中で、ちょっとしたトラブルに遭遇することがあります。

WordPressのプラグインなどを使用して、特定のユーザーの権限を変更することもできますが、間違えて管理者である自分自身の権限を変更してしまったりすると、管理者が居なくなり重要な設定が変更できず、大変なことになります。

その他、管理者が登録しているメールアドレスやユーザー名、パスワードをすべて忘れてしまった場合でも起こります。こちらの場合は、phpMyAdminやSSH接続でのリモート操作などでデータベースの情報を確認すればなんとか解決します。

phpMyAdminでの確認方法はこちらでご紹介しています。

↓ ↓ ↓

WordPressのユーザー名・パスワードを忘れた時の対処方法

もし、管理者権限を持ったユーザーに何かあったとしても、他のユーザーが問題なくログインできれば、PHPスクリプトで解決することができます。

ここでは、PHPスクリプトで権限を変更する方法をご紹介します。


PHPスクリプトで権限を変更


今回ご紹介する方法は、現在利用しているテーマのfunctions.phpにPHPスクリプトを書いていきますので、作業前にファイルのバックアップを取っておいてください。

権限を変更には、WordPressのクラスとメソッドを利用していきます。
利用するクラスとメソッドは以下になります。

WP_User()
WordPress Userクラスを使うことで、特定のユーザーの属性・権限グループ・権限にアクセスすることができます。

set_role()
set_roleメソッドを使うことで、ユーザーに新しい権限を設定することができます。



以下、サンプルコードになります。
functions.phpに、WordPressのクラスとメソッドを利用したPHPスクリプトを追加します。

functions.php

function set_user_role() {
  $user = new WP_User(2);
  $user->set_role( 'administrator');
}
add_action( 'init', 'set_user_role' );



はじめに「set_user_role」という名前で関数を作成します。
変数名はわかりやすい名前でOKです。

関数内の処理では、
変数「user」にWP_Userクラスでオブジェクトを生成します。
WP_Userのパラメーターには、作成したユーザーの順番の番号を設定します。
次に、変数にset_roleメソッドを使って、権限を「administrator(管理者)」として設定します。
これでアクセスして指定したユーザーの権限を、新しい権限に変更する処理が完成です。

最後にadd_action関数を使い、「init」でWordPressの読み込みが完了すると同時に、作成した関数「set_user_role」を実行するようにします。

管理者権限を持ったユーザーがいなくなっても、他のユーザーを管理者に変更すれば、その後にまたユーザーに権限を与えたり、変更することができるようになるので、引き続きユーザーの管理を行うことができます。

権限を変更するプログラムは、1度実行して変更したらその後は必要ありませんので、削除してもらっても構いません。

もしものトラブルにも、今回ご紹介した方法で対応することができます。
覚えておくと良いでしょう。

最後に、ユーザーアカウントの管理はしっかりと。