
WordPressのエラー画面の中でも特に困るのが、画面が真っ白になって何も表示されないパターンです。ちなみに、英語ではWhite Screen of Death(死の真っ白画面)と呼ばれているようです。原因も分からず、何の操作もできないとなれば、はじめてこの現象に遭遇したときは困惑してしまうことでしょう。
今回の記事では、画面が真っ白になってしまったときに真っ先にやるべき対処法を紹介します。
なぜ画面が真っ白になるのか?
この現象が起きるときは、PHPの処理の途中でエラーが発生して処理が停止していると考えられます。加えて、セキュリティ上の理由からWordPressではエラーメッセージを見せないようにデフォルトで設定されています。そのため、画面に何も表示されないという結果になってしまうわけです。
例えば、使用しているプラグインの中に全く同じ関数名を使用しているものが複数あった場合、宣言の時点でPHPのエラーが発生します。単体では問題ないのに、プラグインやテーマの組み合わせでこのようなトラブルが発生してしまうわけです。もちろん、関数名の重複については対策がしてあるケースがほとんどだと思いますが、それでも組み合わせによっては何らかのエラーになってしまう可能性はゼロではありません。
「WP_DEBUG」を有効化する前に
他のサイトを見るとwp-config.phpの「WP_DEBUG」という設定項目を有効化して、エラーメッセージを確認する手順が紹介されています。前述の通り、画面が真っ白になっているときは内部でエラーが発生しているわけですので、その内容を確認すること有効です。
ですが、エラーメッセージを確認したからといってご自身で修正できるとは限りません。開発者なら話は別ですが、一般的なユーザーにとってはエラーメッセージを見たとしても逆に混乱してしまうことでしょう。
画面が真っ白になった時に最初にやるべきことは、どのプラグイン(またはテーマ)がエラーを起こしているかを調べることです。
恐らく、何も操作をしていないのにいつの間にか画面が真っ白になったというわけではないでしょう。その直前に、新しいプラグインの追加やテーマの切り替え、アップデートなど何らかの操作をしているはずです。そこに解決の糸口があります。
ダッシュボードを使わずにプラグインを停止する
WordPressのダッシュボードにアクセスできる場合は、インストール済みプラグイン」の画面で停止すればいいのですが、画面が真っ白になっている場合はダッシュボードの操作もできないことが多いでしょう。そこで、ダッシュボードにアクセスしないでプラグインを停止する方法を紹介します。
すべてのプラグインを一括停止する
以下の手順でインストールしてあるすべてのプラグインを停止することができます。
- FTP・SFTPなどでサーバーに接続する
wp-content
ディレクトリを開くplugins
ディレクトリの名前を変更する(例:backup_plugins)- ダッシュボードの「インストール済みプラグイン」を開いて、すべてのプラグインが停止されていることを確認する
- 変更したフォルダ名を元に戻す
もしいずれかのプラグインに問題があった場合は、ディレクトリ名を変更して停止することでダッシュボードを表示できるようになるはずです。
変更後のディレクトリ名はbackup_pluginsとしています。
ディレクトリ名を変更してダッシュボードにアクセスすると上記のように「エラーによりプラグインが停止されました」と表示されます。このメッセージを確認した後は、ディレクトリ名を元に戻します。そうすると、すべてのプラグインが停止した状態で一覧が表示されるようになります。
特定のプラグインを停止する
もし、どのプラグインが原因になっているかあたりがついている場合は、それだけを停止してみるのも良いと思います。手順はすべてのプラグインを一括停止する場合と同じですが、plugins
ディレクトリの中にあるプラグインのディレクトリ名を変更します。ダッシュボードを使わずにデフォルトのテーマに戻す
もしすべてのプラグインを停止しても、画面が真っ白なままの場合は、使用しているテーマのコードに原因があると判断できます。
デフォルトのテーマに切り替える
使用しているテーマを無効化する場合も、プラグインの場合と同様にフォルダ名を変更する方法が使えます。ただ、themes
ディレクトリ自体を変更してしまうと表示するテーマがない状態になってしまうので、「twentyseventeen」などのデフォルトテーマに戻す方法が良いでしょう。
- FTP・SFTPなどでサーバーに接続する
wp-content
ディレクトリを開くthemes
ディレクトリを開く- 使用しているテーマのディレクトリ名を変更する
- ダッシュボードを開いて、デフォルトテーマに戻っていることを確認する
- 変更したフォルダ名を元に戻す
再びページを表示できるようになったら
プラグインの停止、またはデフォルトテーマに戻すことで、とりあえず画面が真っ白という状態は解決すると思います。その次にやるべきことは、原因をもう少し細かく調べることです。
もしプラグインに問題があった場合は、どのプラグインがエラーの原因だったのかを調べる必要があります。すべてのプラグインを一括停止した後に、ひとつずつ有効化しながら画面が真っ白になっていないかを確認していきます。このようにすることで、問題のあるプラグインを特定することができます。
ただし、前述の通りプラグイン単体の問題とは限りません。複数のプラグインの組み合わせ、またはテーマとプラグインの組み合わせによって問題が起きている可能性も考えておきましょう。
もし原因になっているプラグインの更新が止まっている場合は、諦めて代用できるプラグインを探すしかありません。開発が続いているようなら、今後のアップデートで解消されるかもしれません。
開発者にエラーを報告する
WordPressの公式ディレクトリに登録されているテーマやプラグインの場合は、フォーラムを覗いてみて同様のエラーが報告されていないかを確認しましょう。もしまだの場合はご自身で報告しておいて方が良いと思います。
一方、公式ディレクトリに登録されていない場合は、開発者に直接連絡することになります。サポート用のメールフォームが用意されていないか確認してみましょう。
開発者に報告するにあたって、詳細なエラーメッセージを確認しなくてはいけません。単に画面が真っ白になったと言うだけでは対応が難しいからです。この段階になって初めて、「WP_DEBUG」を有効化する必要性が出てきます。
エラーメッセージを表示させる方法は簡単で、wp-config.phpの一行を変更するだけです。
変更前
define('WP_DEBUG', false);
変更後
define('WP_DEBUG', true);
この状態でエラーが発生すると、画面が真っ白になる代わりにPHPのエラーメッセージが表示されるようになります。ただしこのままの状態だと、ディレクトリ構成などが一般の方に見える状態になってセキュリテイ上よろしくありません。エラーメッセージを確認した後は、必ずもとの設定に戻して下さい。
この記事が大変役に立ちました!有難うございました!
テーマアップデート後、大変困っていました。
エラー「Fatal error: Can’t use function return value in write context in」
結果的に、PHPが古いのが原因でした。
感謝いたします。