2026年6月24日
2026年6月24日
WordPress更新後に管理画面に入れないときの原因の調べ方と直し方
WordPress 本体やプラグイン、テーマを更新したあとに管理画面(/wp-admin/)が開かなくなった場合、多くは更新したプラグインやテーマの不具合、更新の途中での中断、PHP のバージョンとの不一致が原因です。この記事では、画面に出ているメッセージから原因を絞り込み、順に直す手順を説明します。
作業の前に、サイトのファイルとデータベースのバックアップを取ってください。レンタルサーバーの自動バックアップがある場合は、更新前の時点に戻せるかどうかも確認しておくと、手順で直らなかったときの戻り先になります。WP-CLI のコマンドは、SSH でサーバーに接続し、WordPress をインストールしたディレクトリで実行します。
表示されるメッセージで原因を見分ける
| 画面の表示 | 主な原因 | 見る節 |
|---|---|---|
| 「このサイトで重大なエラーが発生しました。」(There has been a critical error on this website.) | プラグインやテーマの PHP の致命的エラー | リカバリーモード、デバッグログ |
| 真っ白な画面(何も表示されない) | PHP の致命的エラー(エラー表示が無効の環境) | デバッグログ |
| 「現在メンテナンス中のため、しばらくの間ご利用いただけません。」(Briefly unavailable for scheduled maintenance.) | 更新が途中で止まり .maintenance が残った |
.maintenance を削除する |
| 「データベースの更新が必要です」(Database Update Required) | 本体更新後のデータベース更新が未実行 | データベースを更新する |
| ログイン画面に戻され続ける、403 / 404 になる | Cookie、.htaccess、セキュリティ系プラグインの設定 |
.htaccess を確認する |
1. リカバリーモードのメールを確認する
WordPress 5.2 以降は、プラグインやテーマが PHP の致命的エラーを起こすと、管理者のメールアドレス(「設定 → 一般」の管理者メールアドレス)にエラーの内容と「リカバリーモード」に入るためのリンクを送ります。本文は「WordPress には、サイトでプラグインやテーマが致命的なエラーを発生させた場合にそれを検知して…」という文面で始まります。
- メールのリンクを開き、ログインする
- 管理画面に、原因として一時停止されたプラグインやテーマと、そのエラーの内容が表示される
- 原因のプラグインを無効化するか、テーマを切り替える
- 管理バーの「リカバリーモードを終了」で終える
リカバリーモードの間、原因のプラグインやテーマが止まるのはリンクを開いたブラウザーだけです。サイトの訪問者には引き続きエラーが表示されるので、無効化などの対処をしてから終了してください。
メールのリンクには有効期限があります。メールが届かない場合は、迷惑メールのフォルダーを確認するか、次の節の方法で原因を調べます。wp-config.php に RECOVERY_MODE_EMAIL 定数を書くと、送信先を管理者メールアドレス以外に変えられます。
<?php
// wp-config.php の「編集が必要なのはここまでです」の行より上に追加
define( 'RECOVERY_MODE_EMAIL', 'admin@example.com' );
2. デバッグログでエラーの内容を見る
メールが届かない、または真っ白な画面の場合は、エラーの内容をログに書き出して確認します。wp-config.php の WP_DEBUG を次のように変えます(すでに define( 'WP_DEBUG', false ); がある場合は、その行を置き換えます)。
<?php
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true ); // wp-content/debug.log に書き出す
define( 'WP_DEBUG_DISPLAY', false ); // 画面には表示しない
@ini_set( 'display_errors', 0 );
保存して管理画面を開き直し、wp-content/debug.log を確認します。
tail -n 30 wp-content/debug.log
PHP Fatal error の行に、エラーの起きたファイルのパスが出ます。パスに wp-content/plugins/プラグイン名/ が含まれていればそのプラグイン、wp-content/themes/テーマ名/ が含まれていればそのテーマが原因と考えられます。
debug.log はウェブから読める場所にできます。調べ終わったら WP_DEBUG を false に戻し、debug.log を削除してください。サーバーの PHP エラーログ(場所はサーバーごとに異なり、レンタルサーバーでは管理画面から見られることが多い)にも同じ内容が出ている場合があります。
3. .maintenance を削除する(メンテナンス中の表示が消えない場合)
WordPress は更新の間、インストールしたディレクトリに .maintenance というファイルを作り、更新が終わると削除します。更新が途中で止まるとこのファイルが残り、メンテナンス中の表示が出続けます。
ls -la .maintenance
rm .maintenance
ファイル名がドットで始まるため、FTP ソフトでは隠しファイルを表示する設定にしないと見えないことがあります。削除したあとは、途中で止まった更新を「ダッシュボード → 更新」からやり直してください。更新が途中で止まったプラグインは、ファイルが欠けていることがあります。
4. プラグインを止めて原因を切り分ける
管理画面に入れないままプラグインを止めるには、WP-CLI かファイルの名前の変更を使います。
# 原因がわかっている場合: そのプラグインだけ無効化
wp plugin deactivate プラグインのスラッグ
# わからない場合: いったんすべて無効化
wp plugin deactivate --all
WP-CLI そのものがエラーで動かない場合は、プラグインとテーマを読み込まずに実行します。
wp plugin list --skip-plugins --skip-themes
wp plugin deactivate --all --skip-plugins --skip-themes
WP-CLI が使えない場合は、FTP やレンタルサーバーのファイルマネージャーで wp-content/plugins/ の中の該当フォルダーの名前を変えます(例: example-plugin → example-plugin.off)。WordPress はそのプラグインのファイルを見つけられなくなり、読み込まなくなります。原因がわからないときは wp-content/plugins フォルダーごと名前を変えると、すべてのプラグインが無効になります。
管理画面に入れるようになったら、プラグインを1つずつ有効化し、どれで再びエラーになるかを確かめます。原因のプラグインは、作者のサポートフォーラムで同じ不具合が報告されていないか確認し、修正版が出るまで無効のままにするか、以前のバージョンに戻します。
5. テーマを切り替えて確認する
プラグインを止めても直らない場合は、テーマが原因の可能性があります。WordPress の標準テーマ(Twenty Twenty-Five など)がインストールされていれば、それに切り替えます。
wp theme list
wp theme activate twentytwentyfive
WP-CLI が使えない場合は、phpMyAdmin などでデータベースの wp_options テーブル(接頭辞が wp_ 以外なら読み替え)を開き、option_name が template と stylesheet の2行の option_value を、インストール済みの標準テーマのフォルダー名(例: twentytwentyfive)に変えます。変更前の値は控えておいてください。標準テーマが1つも無い場合は、先に WordPress.org から入手して wp-content/themes/ にアップロードします。
6. PHP のバージョンを確認する
更新したプラグインやテーマが、サーバーの PHP より新しいバージョンを必要としている場合も、致命的エラーになります。デバッグログに syntax error や、存在しない関数の呼び出し(Call to undefined function)が出ている場合は、PHP のバージョンを確認します。
php -v
wp cli info
コマンドラインの php と、ウェブサーバーが使う PHP のバージョンが違うことがあります。ウェブ側のバージョンは、レンタルサーバーの管理画面で確認してください。プラグインの必要な PHP のバージョンは、WordPress.org のプラグインページの「PHP バージョン」に書かれています。WordPress.org は、2026年11月時点で PHP 8.3 以上を推奨しています。
7. データベースを更新する
本体の更新後に「データベースの更新が必要です」と表示された場合は、画面のボタンを押すか、/wp-admin/upgrade.php を開いて更新します。WP-CLI では次のコマンドです。
wp core update-db
この画面が繰り返し表示される場合は、本体のファイルの更新が一部だけ終わっている可能性があります。次の節の方法でコアファイルを入れ直してください。
8. コアファイルを確認して入れ直す
本体の自動更新や手動更新が途中で止まると、wp-admin や wp-includes のファイルが欠けたり古いまま残ったりします。WP-CLI で公式のファイルと一致しているか確かめられます。
# 現在のバージョンを確認
wp core version
# 公式のチェックサムと比較(不一致や不足のファイルが表示される)
wp core verify-checksums
不一致がある場合は、同じバージョンのコアファイルを上書きでダウンロードし直します。--skip-content を付けると、wp-content(テーマ・プラグイン・アップロード)には触れません。
wp core download --version=$(wp core version) --skip-content --force
WP-CLI が使えない場合は、WordPress.org から同じバージョンの ZIP ファイルを入手し、wp-admin と wp-includes のフォルダーを丸ごと置き換えます。wp-content フォルダーと wp-config.php は上書きしないでください。
9. .htaccess を確認する
ログイン後に 404 や 403 になる、管理画面だけ開けないといった場合は、.htaccess を確認します。セキュリティ系プラグインが /wp-admin/ への接続を制限するルールを追加していることがあります。
まず現在の .htaccess の控えを取り、WordPress の標準の内容だけにして動作を確かめます。標準の内容は次のとおりです(サブディレクトリにインストールしている場合は RewriteBase と最後の行のパスが変わります)。
# BEGIN WordPress
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
cp .htaccess .htaccess.bak
標準の内容にして直る場合は、控えに戻したうえで、追加されたルールを1つずつ外して原因を探します。管理画面に入れるようになったら、「設定 → パーマリンク」で何も変えずに「変更を保存」を押すと、WordPress の部分が書き直されます。
ログイン画面に戻され続ける場合は、ブラウザーの Cookie を削除してから試し、wp-config.php やデータベースのサイトの URL(siteurl と home)が実際の URL と一致しているかを確認します。
wp option get siteurl
wp option get home
直ったあとにすること
WP_DEBUGをfalseに戻し、wp-content/debug.logを削除する- 名前を変えたフォルダーを元に戻し、無効になったプラグインを有効化し直す。原因のプラグインは修正版が出るまで無効のままにする
- 次の更新に備えて、更新前にバックアップを取る手順と、ステージング環境で先に試す手順を決めておく