2026年6月20日
2026年6月20日
WordPressの「プラグイン」画面だけが真っ白になるときのデバッグ手順
管理画面のほかのページは開けるのに「プラグイン」画面(wp-admin/plugins.php)だけが真っ白になる場合、原因はほぼ「プラグイン一覧の表示中に動く、特定のプラグインの処理」か「この画面で走る更新チェックの待ち時間」に絞れます。この記事では、白い画面の正体をブラウザとログで確かめ、プラグイン画面を開けない状態のまま原因のプラグインを特定して復旧する手順を解説します。
プラグイン画面が白くなる仕組み
プラグイン画面は、管理画面の中でも特殊な処理が多いページです。表示のたびに、インストール済みの全プラグインのヘッダー情報を読み込み、各プラグインが追加する「設定」リンクや説明欄のリンク、更新通知などを組み立てます。さらに、この画面を開くと WordPress.org への更新チェック(wp_update_plugins())が実行されます。
そのため、次のようなことが起きると、このページだけが白くなります。
- あるプラグインが、プラグイン一覧専用のフック(
plugin_action_linksやplugin_row_metaのフィルター、admin_noticesなど)で致命的エラーを起こしている - プラグインやテーマが、更新後のPHPバージョンに対応しておらず、この画面で読み込まれる処理で止まる
- プラグイン数が多く、管理画面用のメモリ上限に達している
- サーバーから WordPress.org や有料プラグインの更新サーバーへの通信が遅く、タイムアウトしている
真っ白に見えても、実際には「PHPの致命的エラー」と「タイムアウト」では対処が異なります。まずどちらなのかを確認します。
手順1:ブラウザの開発者ツールで応答を確認する
プラグイン画面を開いた状態で、ブラウザの開発者ツール(Windows は F12、Mac は Command + Option + I)を開き、「ネットワーク」タブを選んでからページを再読み込みします。一覧の先頭にある plugins.php のリクエストを選び、ステータスと所要時間を見ます。
- 500: PHPの致命的エラーの可能性が高い。手順2のログ確認へ
- 502 / 504: Webサーバーと PHP の間でタイムアウトしている。手順5へ
- 200 で本文がほぼ空: エラー表示が無効な状態で処理が途中終了している。手順2へ
- 数十秒待たされた末に失敗: 更新チェックの通信待ちが疑わしい
WordPress 5.2 以降では、致命的エラーが起きると通常「このサイトで重大なエラーが発生しました」という案内が表示され、管理者のメールアドレスにリカバリーモードへのリンクが届きます。案内すら出ずに真っ白になる場合は、このエラー処理より前の段階で止まっているか、メモリ不足でエラー処理自体が動けていない可能性があります。メールが届いていれば、そのリンクからリカバリーモードに入り、原因として示されたプラグインを停止できます。
手順2:デバッグログでエラーの発生元を特定する
wp-config.php の「編集が必要なのはここまでです」の行より上に、次の設定を追加します。編集前に wp-config.php のコピーを手元に保存しておいてください。
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );
画面にエラーを出さずに、wp-content/debug.log に記録する設定です。プラグイン画面をもう一度開いてから、FTP やファイルマネージャーで debug.log を確認します。
見るべきは「PHP Fatal error」の行です。たとえば次のように、エラーが起きたファイルのパスに wp-content/plugins/プラグイン名/ が含まれていれば、そのプラグインが第一候補です。
PHP Fatal error: Uncaught Error: Call to undefined function ... in /home/example/public_html/wp-content/plugins/example-plugin/admin/class-admin.php:120
「Allowed memory size of ... bytes exhausted」と出ている場合はメモリ不足です(手順4)。debug.log に何も出ない場合は、サーバー側のエラーログ(レンタルサーバーの管理パネルや、VPS なら PHP-FPM・Web サーバーのログ)も確認します。
手順3:プラグイン画面を使わずに原因プラグインを止める
原因がプラグインだと分かっても、プラグイン画面が開けなければ管理画面から停止できません。次のいずれかの方法を使います。
FTP・ファイルマネージャーで停止する
wp-content/plugins/ 内の該当プラグインのフォルダー名を、example-plugin_off のように変更します。WordPress はフォルダーが見つからないプラグインを自動的に無効化します。どれが原因か分からない場合は、plugins フォルダーごと名前を変えると全プラグインが止まるので、プラグイン画面が表示されるか確かめてからフォルダー名を戻し、プラグイン画面で1つずつ有効化して再現するものを探します。
WP-CLI で停止する
SSH が使えるなら WP-CLI がもっとも手早い方法です。原因のプラグイン自体が WP-CLI の実行を妨げることがあるため、プラグインとテーマを読み込まずに実行するオプションを付けます。
# プラグインを読み込まずに一覧を表示
wp plugin list --skip-plugins --skip-themes
# 疑わしいプラグインだけを無効化
wp plugin deactivate example-plugin --skip-plugins --skip-themes
Health Check & Troubleshooting を使う
管理画面のほかのページが開けるなら、公式プラグイン「Health Check & Troubleshooting」のトラブルシューティングモードも有効です。このモードはログイン中のあなたにだけ、すべてのプラグインを無効にした状態の管理画面を見せ、訪問者側のサイトには影響を与えません。モード中にプラグイン画面が表示されれば、プラグインのどれかが原因と判断でき、管理バーのメニューから1つずつ有効化して原因を絞り込めます。ただし、このプラグインのインストール自体にプラグイン画面が必要な場合は、「プラグイン」→「新規追加」の画面(plugin-install.php)から導入できるか試してください。
手順4:管理画面用のメモリ上限を見直す
メモリ不足が原因の場合、ここでつまずきやすいのが WP_MEMORY_LIMIT だけを上げてしまうことです。WordPress は管理画面では別の上限 WP_MAX_MEMORY_LIMIT(既定値 256M)を使います。管理画面だけが白くなるなら、こちらを確認します。
define( 'WP_MEMORY_LIMIT', '128M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );
ただし、これらは PHP 側の memory_limit の範囲内でしか効きません。サーバーの PHP 設定で上限が低く固定されている場合は、管理パネルの PHP 設定や php.ini で memory_limit を上げる必要があります。現在の値はサイトヘルスの「情報」タブ、「サーバー」の項目で確認できます。
メモリを上げて直った場合でも、特定のプラグインが異常にメモリを使っている可能性は残ります。Query Monitor などで管理画面のメモリ使用量を確認し、不要なプラグインを整理しておくと再発を防げます。
手順5:更新チェックのタイムアウトを疑う
ステータスが 504 だったり、表示まで極端に時間がかかったりする場合は、プラグイン画面を開いたときの更新チェックが外部サーバーへの通信で止まっている可能性があります。特に、独自の更新サーバーを持つ有料プラグインやテーマは、その接続先が応答しないとページ全体の表示が遅れます。
確認の方法は次のとおりです。
- サイトヘルスの「ステータス」タブで、WordPress.org との通信に関する問題が出ていないか見る
- 手順3の方法で有料プラグインを一時停止し、表示速度が戻るか確かめる
- VPS なら、サーバーから
curl -I https://api.wordpress.org/を実行して応答があるか確かめる
ファイアウォールで外向き通信が制限されている場合は、WordPress.org への HTTPS 通信を許可する必要があります。
復旧後に確認すること
原因のプラグインを停止してプラグイン画面が表示されたら、そのプラグインの更新版が出ていないか、使っている PHP バージョンに対応しているかを確認します。更新で直らない場合は代替プラグインへの切り替えを検討してください。
作業が終わったら、wp-config.php の WP_DEBUG を false に戻し、debug.log を削除します。debug.log は外部から閲覧できる場所にあるため、放置するとサーバーのパスなどの情報が漏れる原因になります。WordPress や PHP のバージョンによってエラー表示やリカバリーモードの文言は異なる場合があります(2026年10月現在)。
まとめ
- プラグイン画面だけが白い場合は、一覧表示中に動くプラグインの処理か、更新チェックの待ち時間が原因であることが多い
- 開発者ツールのネットワークタブでステータスを見て、致命的エラーかタイムアウトかを先に切り分ける
- WP_DEBUG_LOG で debug.log を出し、エラー行のパスから原因プラグインを特定する
- プラグイン画面が使えないときは、フォルダー名の変更か
wp plugin deactivate --skip-pluginsで停止する - 管理画面のメモリは
WP_MAX_MEMORY_LIMITで決まる点に注意する