結論
WordPress のログイン画面(wp-login.php)や管理画面(/wp-admin/)が真っ白で入れないときは、管理画面を使わずに、外からプラグインやテーマを止めるのが最短の復旧手段です。ログイン画面でもプラグインとテーマの functions.php は読み込まれるので、そこで致命的エラーが起きると、ログインする前の段階で画面が白くなります。
手段は、使える環境に合わせて次の順で選びます。
- リカバリーモードのメールが管理者に届いていれば、そのリンクから入り、原因のプラグインを停止する
- WP-CLI が使えるサーバーなら
wp plugin deactivate --allで一括停止する - どちらも無理なら、FTP やサーバーのファイルマネージャーで
wp-content/pluginsのフォルダ名を変える
止めて画面が戻ったら、プラグインを1つずつ有効化し直して原因を特定します。原因の特定にエラー内容が必要なら、WP_DEBUG_LOG でログを出します(手順は WordPress 画面が真っ白になる原因とWP_DEBUGでの調べ方 にまとめています)。
原因・仕組み
ログイン画面・管理画面が白くなる原因は、大きく次の3つです。
- プラグインの致命的エラー: 更新直後、PHP のバージョンを上げた直後に起きやすい
- テーマの
functions.phpの誤り: 管理画面でも読み込まれるため、閉じ括弧の不足などで全画面が止まる - ファイル先頭・末尾の余計な文字: 公式の Common WordPress Errors は、「Headers already sent」エラーの原因として、開始タグの前や終了タグの後の空白・文字を挙げています。ログイン処理は Cookie を送るためにヘッダーを使うので、この状態だとログインできない・白い画面のまま、という症状になります
WordPress 5.2 で入ったリカバリーモード(致命的エラー保護)は、致命的エラーが起きたときにエラー画面を出し、管理者のメールアドレスに秘密のリンクを送る仕組みです。リンクを開くとブラウザに Cookie が設定され、エラーを起こしたプラグインを止めた状態で管理画面に入れます。送り先は RECOVERY_MODE_EMAIL 定数や recovery_mode_email フィルターで変えられます。ただし、メールがサーバーから送れない環境や、wp-config.php 自体の記述ミスでは働きません。
管理画面に入れないときにフォルダ名を変える方法が効くのは、WordPress が「有効なプラグイン」の一覧(オプション active_plugins)にあっても、ファイルが存在しないプラグインは読み込まないからです。
手順(サンプルコード)
1. FTP・ファイルマネージャーで止める
公式の Common WordPress Errors の手順どおり、wp-content/plugins を plugins_old などに名前変更すると、すべてのプラグインが読み込まれなくなります。
wp-content/plugins → wp-content/plugins_old (全プラグインを止める)
wp-content/plugins/foo → wp-content/plugins/foo.off (1つだけ止める)
ログインできたら、plugins_old を plugins に戻し、管理画面の「プラグイン」一覧で1つずつ有効化して、白くなったものが原因です。テーマが原因のときは、wp-content/themes/ の使用中のテーマのフォルダ名を変えます。
2. WP-CLI で止める
SSH が使えるサーバーでは、WP-CLI の公式コマンドで止められます。
wp plugin deactivate --all
wp plugin deactivate --all --exclude=hello,wordpress-seo # 一部を残す
wp plugin deactivate foo # 1つだけ止める
3. 自分で書いたコードが原因のとき
テーマや自作プラグインのファイルの先頭に、<?php より前の空白や BOM が入っていないかを確認します。PHP だけのファイルは、終了タグ ?> を書かないでおくと、末尾の空白による事故を防げます。
<?php
// functions.php の先頭は必ず <?php から始める(前に空行・空白・BOM を入れない)
add_action( 'login_enqueue_scripts', 'mytheme_login_style' );
function mytheme_login_style() {
wp_enqueue_style( 'mytheme-login', get_theme_file_uri( 'login.css' ), array(), '1.0' );
}
// ファイル末尾に PHP の終了タグは書かない(一行コメントの中でも終了タグは PHP を抜けるので注意)
動作確認(検証環境と結果)
WordPress 7.1.2(ja)/PHP 8.2.12 の CLI 検証環境で、テスト用プラグインを有効化したあと、そのフォルダ名を変えて挙動を確かめました(php run.php wl2_rename.php、ログは tests/login-admin-white-screen-cannot-login.md)。
active_plugins(before)=ks-broken/ks-broken.php
valid(before)=ks-broken.php
valid(after rename)=
invalid: ks-broken/ks-broken.php => Plugin file does not exist.
active_plugins(after validate)=
fatal_handler_enabled=true
recovery_mode_active=false
- フォルダ名を変えると、
active_pluginsに残っていても、読み込み対象(wp_get_active_and_valid_plugins())から外れました。これが「名前を変えると止まる」理由です。 - 管理画面のプラグイン一覧で使われる
validate_active_plugins()を呼ぶと、「Plugin file does not exist.」として有効化の一覧から外されました。つまり、名前を戻しても自動では再有効化されず、手で有効化し直す必要があります。 - 手順3の
functions.phpの例はphp -lで構文エラーが無いことだけを確認しました(ログイン画面での表示は未検証)。 - 致命的エラー保護は有効でした。WP-CLI はこの環境に無いため、上の
wp plugin deactivateは未検証です(コマンドは公式ドキュメントで確認)。メール送信も確認していません。
WordPress ログイン画面・管理画面が真っ白で入れないときの対処の注意点
- フォルダ名の変更や
wp-config.phpの編集の前に、ファイルとデータベースのバックアップを取ります。 pluginsごと名前を変えた場合、戻したあとは全プラグインが停止した状態です。セキュリティ系・キャッシュ系のプラグインを先に戻し、停止中の時間を短くします。- リカバリーモードのリンクは管理者アドレスに届きます。管理者アドレスが古いと受け取れないので、平常時に確認しておきます。
- ログイン画面だけ白い場合は、ログイン画面をカスタマイズするコード(
login_enqueue_scriptsやlogin_headなど)を疑います。
WordPress ログイン画面・管理画面が真っ白で入れないときの対処でよくあるミス
- プラグインを全部削除してしまう。名前変更で十分で、削除すると設定が戻らないことがあります。
- キャッシュ系プラグインの止め忘れで、直ったのに白い画面が表示され続ける。ブラウザとサーバーのキャッシュも消します。
functions.phpを編集し直すたびに、ファイル先頭に空行が入っていることに気づかない。- 原因を特定しないまま全部を元に戻し、また白い画面になる。
WordPress ログイン画面・管理画面が真っ白で入れないときの対処のチェックリスト
- [ ] バックアップを取った
- [ ] リカバリーモードのメールが届いていないか確認した
- [ ] WP-CLI または FTP でプラグインを止めた
- [ ] ログインできたら1つずつ有効化して原因を特定した
- [ ] テーマが原因なら、テーマのフォルダ名を変えて確認した
- [ ] 自作コードの先頭の空白・BOM、末尾の
?>を確認した
WordPress ログイン画面・管理画面が真っ白で入れないときの対処のFAQ(よくある質問)
Q. フロントは表示されるのに、管理画面だけ白いのはなぜですか。
A. 管理画面でだけ読み込まれるプラグインのコードや、管理画面用のメモリ上限(WP_MAX_MEMORY_LIMIT)が原因のことがあります。
Q. フォルダ名を戻したら、プラグインは自動で有効に戻りますか。
A. 検証では、管理画面の一覧を開いた時点で有効化の一覧から外れました。戻したあとは手で有効化し直します。
Q. パスワードを忘れて入れないのとは違いますか。
A. 違います。白い画面は PHP のエラーで、パスワードの問題ではありません。ログインフォーム自体が表示されないときは、まず本記事の手順でプラグインを止めます。
筆者の見解(WordPress ログイン画面・管理画面が真っ白で入れないときの対処)
管理画面に入れない状況では、原因探しより先に「外から止める手段」を持っているかどうかが復旧時間を決めると考えています。私見では、FTP の接続情報と管理者メールアドレスを平常時に確認しておくことが、いちばん安上がりな備えです。検証でも分かったとおり、フォルダ名の変更は有効化の状態を外してしまうので、戻したあとに何を有効化し直すか、事前にプラグインの一覧を控えておくと安心です。
WordPress ログイン画面・管理画面が真っ白で入れないときの対処の関連項目
- WordPress 画面が真っ白になる原因とWP_DEBUGでの調べ方
- 「サイトに重大なエラーが発生しました」が出たときの切り分け手順
- login_enqueue_scripts フックの使い方|説明・引数・注意点
- wp_login フックの使い方|説明・引数・注意点
- wp_login_url() の使い方|説明・引数・注意点
- WordPress 更新後に真っ白・メンテナンス表示のままになる原因と対処(準備中)

