WordPressのバージョン5.2で実装された、Fatal Error(致命的なエラー)が発生した場合のメール機能。何かしていて突然メールが来てびっくりした方も多いのではないでしょうか??
この機能はエラーが発生したときに
- エラーの発生原因と解決のヒント
- このエラーによって管理画面へ入れなくなってしまった場合にデバックモード(修復モード)で管理画面へアクセスするためのURL
を管理者へメールで通知するもの。
昔はいきなり画面が真っ白になって意味不明なコードだけが表示されていたものに、バージョン4.9でエラーと思われるファイルは更新時に保存されなくする機能が追加され、さらにエラーになって管理画面に入れなくなった時の対応をするという、とことんエラーに強いCMSへWordPressは進化してきました。
ただ昔から使っている人にとってこの機能は便利なのか?不便なのか?の個人的な感想を言うと4.9のコードエラーチェックも秀逸ではあるものの空白(スペース)を誤認識して更新できないときがあって便利なような不便な感じなのに、更にメールで通知されてもねぇ・・・エラーが出て真っ白になったときは結局エラーの内容と回避の方法を知らなかったら何もできないんだからねぇ・・・って感じなんですけどどうなんでしょうね?
そこで昔からWordPressを使っている方で今回のメール通知機能がいらないよ!という方、
- コードのチェックなど何かのテストをしたい(エラーが出る可能性があるもの)
- 誰かに頼まれてサイトのカスタマイズ等を行う場合
など、エラーが出る可能性のある作業をするときにエラーが出てメールが来るのはちょっと・・という方向けに、この機能をオフにする方法を紹介します。
※ちなみにfunctions.phpへ追記する方法しか試していませんし、わざとエラーを出して検証したものでもありませんので、文末の参考記事等をご覧になって必要であれば行ってください。
実際に来たメールの例
以前このサイトで「Search Regex」プラグインのエラーが出たときに届いた実際のメールです
※必要ない内容は削除や変更をしてます
WordPress 5.2から、サイトでプラグインやテーマが致命的なエラーを発生させた場合にそれを検知してこの自動メールでお知らせする機能が追加されました。
今回の場合、WordPress がプラグイン Search Regex でエラーを捉えました。
まずはじめに、ご自分のサイト (https://www.momosiri.info/) を開き、表示上の問題がないか確認してください。次に、エラーが発生したページを開き、表示上の問題がないか確認してください。
この問題をさらに調査するにはサーバーホストに連絡してみてください。
もしサイトが壊れていてダッシュボードに正常に接続できない場合、WordPress には特別なリカバリーモードがあります。これによりダッシュボードに安全にログインし、さらに調査をすることができます。
リカバリーモード用のURL
サイトを安全に保つため、このリンクは 1日 で有効期限が切れます。とはいえご心配なく。有効期限後でもこのエラーが再度発生すれば新しいリンクが送られてきます。
エラー詳細
===============
エラータイプ E_ERROR が /サーバー内のディレクトリ/wp-content/plugins/search-regex/view/results.php ファイルの 26 行目で発生しました。 エラーメッセージ: Uncaught Error: Call to undefined method SearchRegex::base_url() in /サーバー内のディレクトリ/wp-content/plugins/search-regex/view/results.php:26
Stack trace:
エラーが出る直前に処理していた内容がいろいろ書いてある
ちなみに「Search Regex」で発生するこのエラーはPHPのバージョンによるもので、
の対処を行うことで問題なく動作するようになります。
functions.phpへ追記して無効にする方法
functions.phpはそのテーマが動作している(有効化している)状態でのみ適用されるので、頻繁にテーマを変更するようなサイトでは下の「wp-config.phpに追記する方法」で行うことをおすすめしますが、wp-config.phpは非常に重要なファイルですし、WordPressの管理画面からは操作できませんので編集するのも大変ですから任意に停止したり有効にしたりする場合にはこちらの方法の方が簡単です。
functions.phpに追記してエラー通知メールを無効にする方法
管理画面から「外観」→「テーマエディタ」を開きます
右側のリンクにある「テーマのための関数 functions.php」をクリックして開きます
たくさん書いてあるコードの一番下に↓のコードを追記して保存します
add_filter( 'wp_fatal_error_handler_enabled', '__return_false' );
通常の動作に戻す場合には挿入したコードを削除するかコメントアウトすればOKです。

wp-config.phpに追記して無効にする方法
テーマに左右されずにこの機能を無効にするにはこちらの方法を使います。が、前述した通りWordPressを稼働させるための重要なファイルですのでこのファイルの編集に慣れていない方(特に自動インストールで今回初めてこのファイルの存在を知った方など)は上のfunctions.phpへ追記する方法をお勧めします。
wp-config.phpに追記してエラー通知メールを無効にする方法
FTPクライアントツールを使ってWordPressのインストールされている場所を開きます
フォルダやファイルのたくさん並んでいる一覧から「wp-config.php」を探し、パソコンへ保存します
wp-config.phpファイルを開き、
const WP_DISABLE_FATAL_ERROR_HANDLER = true;
define( 'WP_DISABLE_FATAL_ERROR_HANDLER', true );
のいずれかを、「wp-config.php」の中の「/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */」と書かれている行の上へ追加することで機能が停止できます。
wp-config.phpを管理画面から編集できるプラグインもあります(おすすめの方法ではないのでここでは紹介しません)が、それを使って編集に失敗した場合、FTPを使って修復することになりますので、FTPは使えるしwp-config.phpの編集もしたことあるけど、面倒だから管理画面で・・という方のみ使用するようにしてください。
参考にしたページ
残念ながら調べた限りでは日本語のページでこの情報が掲載されているものはありませんでしたので、海外のサイト経由で発見しました。
WordPress 5.2 “Jaco” Released, Includes Fatal PHP Error Protection and A Recovery Mode
How to disable the fatal error (WSOD) protection?
Fatal Error Recovery Mode in 5.2
![WordPress5.2.2で始まった【[サイト名] サイトで技術的な問題が発生しています】のメールを止める(機能を停止する)方法|Knowledge Base WordPress5.2.2で始まった【[サイト名] サイトで技術的な問題が発生しています】のメールを止める(機能を停止する)方法|Knowledge Base](https://www.momosiri.info/wp-content/plugins/pochipp/assets/img/pochipp-logo-t1.png)
![WordPress5.2.2で始まった【[サイト名] サイトで技術的な問題が発生しています】のメールを止める(機能を停止する)方法|Knowledge Base WordPress5.2.2で始まった【[サイト名] サイトで技術的な問題が発生しています】のメールを止める(機能を停止する)方法|Knowledge Base](https://www.momosiri.info/wp-content/plugins/pochipp/assets/img/pochipp-logo-t1.png)