症状→このページにアクセスする権限がありません。
WordPressでログインはできるが、/wp-admin/(管理画面)に遷移できず、TOP画面になってしまう。
/wp-adminを直打ちすると「このページにアクセスする権限がありません。」と表示されてしまう。
管理者権限のアカウントでログインしてもこのような症状が出て、大変困りました。
対処方法を掲載しますが、必ずワードプレスとデータベースのバックアップを取ってから作業することを強くお勧めします。
結論:wp_optionsテーブルのwp_user_rolesの値が空になっていた。
wp_optionsは、管理画面上で行える設定が格納されているテーブル。
wp_user_rolesをadministratorにすることで無事管理画面に入ることができました。
※wp_user_rolesは、94行目の値です。
入力する値については、wp_user_rolesの理解に乏しいことと、セキュリティの都合上、掲載できませんが、バックアップから復元して取得するのが現実的だと思われます。
筆者は全く同じ構成のサブサイトがあったため、そちらから拝借しました。
こちらの2つのQ &Aがなければ解決できなかったです。
その他、原因となりうる要素を以下で解説。
プラグイン
・プラグインの更新
・新規プラグインのインストール
・WordPressのバージョンアップしたとき
プラグインやWordPressのコアファイルのアップデートが原因となっている場合があります。
管理画面に入れないので、FileZillaなどのFTPクライアントを使用してSFTPでサイトにアクセスする必要があります。wp-contentフォルダに移動して、plugins/themesというサブディレクトリの中身を見ます。
筆者の場合、数日前にXML SiteMapと、All In One SEO Packが自動更新されていました。ローカルにファイルバックアップを取り、プラグインを消去してみましたが解決せず。
→プラグインが原因の可能性は低い。
プレフィックスの変更によるもの
プレフィックスとは、ワードプレスのデータベースのテーブル名の前につく接頭辞のこと。初期設定は 「wp_ 」。
WordPressインストール時に、プレフィックスがユーザー権限などデータベースの様々なデータに書き込まれます。
つまり途中でプレフィクスを変えてしまうと、データにアクセスできなくなり、エラーとなります。
サーバー移転や、データの引っ越しなどでwp-config.phpを編集・修正した場合に接頭辞が変更されてしまったかどうか確認してください。
ですが、筆者の場合は、プレフィクスを変えた覚えはなし。
$table_prefix = ‘wp_’;
単純なURLの打ち間違い
何度も確認したが、間違いない。
侵入された?
ID &パスワードを破られて侵入された疑いもあります。
しかし、サイトは通常通り閲覧できる状態です。
もしハッキングされているなら、別のサイトにリダイレクトされたり、サイトが改変されたり、そもそも閲覧できなくなるなどの症状が出ていてもおかしくないのですが。
念のため、FileZilla(FTPソフト)を利用して、WPフォルダの中身の最終更新日を調べましたが、不審な更新日のファイルなどは特にありません。
サーバーにもWAF機能など備わっているため、セキュリティレベルは低くないはず。
WordPressのバージョン
<generator>https://wordpress.org/?v=5.9.5</generator>
<generator>https://wordpress.org/?v=6.0.3</generator>
正常に動いているサイトと比較したところ、WordPressのバージョンが違っていた。管理画面に入れないので、手動でアップデートを試みるが、データベースの更新がうまくできずに断念。
解決に数時間を要した
原因が非常に分かりづらかったため、解決に数時間を要してしまいました。
当記事をお読みの方が、私と同じ轍を踏まないで済むことを願っています。