ブログ

WordPressで「重大なエラーが発生しました」と表示されたときの原因と対処方法

「重大なエラーが発生しました」と表示されたときに、まず行うべき確認

WordPressで「重大なエラーが発生しました」と表示される場合、 すでにPHPの処理が途中で停止しています。 これは単なる表示不具合ではなく、 WordPressが「処理を続けると危険」と判断した結果です。

重要なのは、原因を推測で判断しないことです。 更新直後であっても、見た目が真っ白であっても、 実際の原因はまったく別の箇所にあるケースが少なくありません。

デバッグモードを有効にして、停止している処理を可視化する

WordPressは通常、致命的エラーの詳細を画面に表示しません。 そのため、まずはデバッグモードを有効にして、 「どのファイルで」「どの処理が」「なぜ止まったのか」を確認します。

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

上記を wp-config.php に設定すると、 エラー内容が画面、またはログとして出力されます。 ここで初めて、WordPressが停止した本当の理由が見えてきます。

表示されるエラーには、大きく分けて次のような種類があります。

  • Fatal error(致命的エラー)
  • Parse error(構文エラー)
  • Call to undefined function(関数未定義)

Fatal error や Parse error が出ている場合、 その時点で処理は完全に停止しています。 この状態では、再読み込みや更新を繰り返しても改善しません。

エラーメッセージから原因箇所を切り分ける

エラー文の中に wp-content/plugins が含まれている場合、 原因はほぼプラグインです。 一方で wp-content/themes が含まれていれば、 テーマファイル、特に functions.php が疑われます。

この段階で重要なのは、 エラーが出ている「行番号」だけを見て判断しないことです。 実際には、その行より前の処理が原因になっているケースも多くあります。

管理画面に入れない場合の安全な切り分け方法

管理画面にアクセスできない場合でも、 FTPやサーバーのファイルマネージャーが使えるなら、 WordPress自体を壊さずに切り分けを行えます。

まず wp-content/plugins フォルダ名を一時的に変更します。

plugins → plugins_old
  

これにより、すべてのプラグインが無効化されます。 表示が復旧した場合、原因はプラグイン側にあると判断できます。 この方法は、データベースや投稿内容に影響を与えません。

なお、この状態で表示が戻らない場合、 テーマファイル、もしくはPHPバージョンとの不整合を疑います。

PHPバージョンが原因となるケース

サーバー側でPHPが更新された直後にエラーが出た場合、 古い書き方のコードが動作しなくなっている可能性があります。 特に PHP8 以降では、以前は警告レベルだった記述が 致命的エラーになることがあります。

この場合、PHPを一時的に下げるか、 該当コードを修正しなければ復旧しません。 見た目が戻っても、内部で問題が残るケースがあるため注意が必要です。

復旧後に必ず行うべきこと

原因の切り分けが終わり、表示が復旧した場合でも、 デバッグ設定は必ず元に戻してください。

define('WP_DEBUG', false);
define('WP_DEBUG_LOG', false);
define('WP_DEBUG_DISPLAY', false);
  

デバッグを有効にしたまま運用すると、 エラー情報が外部に表示される可能性があり、 セキュリティ上のリスクになります。

また、表面的に直っただけで、 内部に問題が残っているケースも少なくありません。 再発を防ぐためには、原因箇所の確認と整理が重要です。

「重大なエラーが発生しました」とマルウェアの関係について

「重大なエラーが発生しました」という表示が出た場合、 プラグインやテーマの不具合だけでなく、 マルウェアや不正コードの影響を受けている可能性も考慮する必要があります。

すべての重大エラーがマルウェアによるもの、というわけではありません。 実際には、更新や設定変更に起因するケースのほうが多数です。 ただし、一定の条件が重なった場合、 マルウェアがエラー発生の引き金になることがあります。

マルウェアが原因となる場合の典型的な状況

マルウェアが関与している場合、 次のような状態が同時に見られることがあります。

  • 覚えのない管理者アカウントが存在する
  • テーマやプラグイン内に見覚えのないPHPコードがある
  • 特定のページだけが表示されない、またはリダイレクトされる
  • サーバー会社から不審な動作に関する通知が届いている

これらはすべて、単独で起きる場合もあれば、 複数同時に発生する場合もあります。 重大なエラーは、こうした不正コードが PHPの処理を妨げた結果として表面化することがあります。

マルウェアとエラーの関係は固定的ではない

注意すべき点として、 マルウェアの挙動や侵入手法は日々変化しています。 現在知られている症状や判断基準が、 今後も同じ形で当てはまるとは限りません。

そのため、 「このエラーが出たから必ずマルウェア」 「この症状がないから安全」 といった単純な判断は推奨されません。

実際には、 マルウェアの存在そのものよりも、 サイト内部で通常とは異なる挙動が起きていないか を総合的に確認することが重要です。

デバッグ時に注意すべき点

デバッグモードを有効にした際、 エラーの発生箇所が wp-includes や コアファイルを指している場合でも、 直ちにWordPress本体の破損と判断するのは早計です。

不正コードがコアファイルの処理に割り込むことで、 結果としてコア側でエラーが発生しているように見えるケースもあります。 この場合、見えているエラー箇所と原因箇所が一致しないことも珍しくありません。

マルウェアの可能性が少しでも疑われる場合、 無理にコードを修正したり削除したりせず、 状況を把握したうえで対応方針を決めることが重要です。

表面的にエラーが解消しても、 不正コードが残ったままの場合、 再発や別のトラブルにつながることがあります。

スタッフイラスト

WordPressののご相談はお気軽にどうぞ

中小企業・個人事業主を中心に、
ホームページやブログのカスタマイズやバナー制作、WordPress更新など幅広く対応しています。

TEL.050-3092-1700

受付時間:9:00~21:00(年中無休)

ページ上部へ戻る