ワードプレスサイトが突然「このサイトで重大なエラーが発生しました。」と表示されサイトが表示不能になったりログインできなくなってしまった場合の対処方法について解説いたします。


「このサイトで重大なエラーが発生しました。」と表示される原因

ワードプレスはPHPというプログラミング言語で作られているシステムで、ワードプレスサイトには一般的にワードプレス本体、テーマ、プラグインのPHPプログラムファイルが数千ファイル含まれています。

その中に、PHPプログラムの書式に従っていないコードがあったり、使用できない処理があったり、プログラム内で矛盾があった場合などで処理が強制的に停止するとサイトが表示できなくなり、管理画面のプログラム等も含めプログラムの実行ができなくなります。

この場合「このサイトで重大なエラーが発生しました。」と表示される形になります。

エラーの内容や個所を調べるには?

1 最近編集したファイル

このエラーが発生する前に、テーマのFunctions.phpやHeader.php等のファイルに何らかの編集を加えられた場合、そのプログラムにPHPエラーが発生している可能性が高いです。
FTP等でファイルをダウンロードしてローカルでエラーを修正の上、再度アップロードして復旧する形になるかと存じます。

2 ワードプレス本体やプラグイン、テーマ、もしくはPHPのアップデート

ワードプレスサイトの本体やプラグイン、テーマ、PHPの更新によりエラーが発生している場合もございます。この場合下記のような理由でサイトが表示されなくなる場合が多いです。

・新しいPHPのバージョンで使用できない古いプログラムの書き方がテーマやプラグインに残っている
・一部のプラグインのみアップデートすることでそのアップデートにより、何らかの処理が削られているにもかかわらず、古いままのテーマもしくはプラグインでその処理が使われている
・同じ名称の処理が使われている
・アップデートが何らかの理由で中途半端に終わってしまいファイルが欠損している

この場合、最後にアップデートしたプログラムが問題を引き起こしている場合が多いため、最も簡単にエラーを解消する方法は(一旦サイトをバックアップの上)最後にアップデートしたプログラムをロールバック(元のバージョンに戻す)ことになります。

参考
ワードプレスでプラグインの更新(アップデート)を行った後にサイトが表示されなくなった場合の対処方法

エラーの内容をエラーログから調べる方法

ワードプレスには、エラーログを書き出してくれる仕組みがついていますのでこのエラーの詳細をエラーログを出力して調べることも可能です。

FTPソフトウェアサーバーに接続することで、ワードプレスサイトのwp-config.phpを直接編集します。

次の行

define('WP_DEBUG', false);

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);

と書き換えてサーバー上に上書き保存します。

次に再度ワードプレスサイトにアクセスして、エラー画面を表示します。

次にFTP接続をし、wp-contentフォルダ 内に生成される、debug.log をダウンロードしてテキストエディターで開いてみます。

debug.logの内容の例

[26-May-2022 09:01:57 Australia/Perth] PHP Notice:  wp_enqueue_script was called incorrectly. Scripts and styles should not be registered or enqueued until the wp_enqueue_scripts, admin_enqueue_scripts, or login_enqueue_scripts hooks. This notice was triggered by the jquery handle. Please see Debugging in WordPress for more information. (This message was added in version 3.3.0.) in C:\wamp64\www\wordpress\wp-includes\functions.php on line 5775

[26-May-2022 09:01:59 Australia/Perth] PHP Parse error:  syntax error, unexpected 'if' (T_IF) in \wp-content\themes\twentytwentyone\functions.php on line 13

最終行にあるログほど新しいログとなります。

PHP Parse error、もしくは fatal error などと記載のある行が処理を停止するような致命的なエラーです。
この例の場合 下記の行より、テーマフォルダのfunctions.phpの13行目に致命的なエラーが有ることがわかります。

\wp-content\themes\twentytwentyone\functions.php on line 13

※サーバーによってはエラーログが出力されない場合もございます。

WordPress ワードプレスのエラーの修正サイトの復旧、トラブル対応のご相談・ご依頼はWPドクターまでお気軽にお送りください