WordPressのデバッグ中に、突然「サイトで技術的な問題が発生しています」というメールが大量に届き、集中力を削がれた経験はありませんか。
特にローカル開発環境やステージング環境では、意図的なエラーや警告も頻繁に出るため、このメール通知はまさにノイズそのものですよね。
この通知が来るたびにメールクライアントをチェックし、本番サイトではないことを確認する一連の動作は、あなたの貴重な制作時間を着実に奪っています。たかがメール、と放置すれば、本当に重要な本番サイトのエラーメールが埋もれてしまうという二次被害も発生しがちでしょう。
なぜ「サイトで技術的な問題が発生しています」のメールが送信される?通知のメカニズムを理解しよう
そもそも、このメールは2019年公開のWordPress 5.2から導入された「サイトヘルス機能」の一部なのです。サイトでPHPのエラーや致命的な問題(Fatal Error)が発生した際、管理者にその情報を知らせ、早急な対応を促すためのセーフティネットとして設計されました。
この機能自体は本番サイトの安定運用においては非常に有益なものだと言えます。しかし、あなたがコードを修正している最中や、テストで敢えてエラーを発生させている開発フェーズでは、親切が裏目に出ている状態ですね。
管理画面の「設定」>「一般」で設定されている管理者メールアドレスに向けて、WordPressは内部で $wp_mail() 関数を呼び出し、SMTP経由で通知を送信します。開発環境でこの通知を放置し続けるのは、まさに非効率の極みと言えるでしょう。
「サイトで技術的な問題が発生しています」の通知を完全に停止する2つの実戦的メソッド
この迷惑な通知を停止する最もスマートかつ確実な方法は、WordPressがエラーメールを送信する仕組みそのものを無効化することです。実務レベルで推奨される、2025年現在でも有効な二つの方法を紹介します。
①PHPの定数でメール送信を無効化する(推奨度:高)
WordPressには、デバッグモードやエラー通知に関する挙動を制御するための定数が用意されています。この機能でメール通知を停止できます。あなたのテーマをカスタマイズする際にもよく触れる、wp-config.php ファイルに以下のコードを追記するだけで、エラー通知メールの送信をストップ可能です。
|
1 2 3 4 |
/ * 致命的なエラーに関する通知メールを送信しないようにする */ define( 'WP_DISABLE_FATAL_ERROR_HANDLER', true ); |
WP_DISABLE_FATAL_ERROR_HANDLER この定数を true に設定すると、致命的なエラーが発生してもエラーハンドラが動作せず、結果として管理者への通知メールも送信されなくなります。非常にシンプルで確実な方法でしょう。
②アクションフックで通知機能をオーバーライドする(推奨度:中)
もし、定数の追加が難しい場合や特定の条件でのみ停止したい場合は、テーマの functions.php 、または自作のカスタムプラグイン内でアクションフックを利用して機能を上書きすることもできます。WordPressのメール通知機能は、内部的には $wp_fatal_error_handler オブジェクトが実行する処理に依存しています。
以下のコードを追記することで、このエラーハンドラのメール送信処理を丸ごと無効化できます。
|
1 2 3 4 5 |
/ * サイトヘルス機能による致命的なエラー通知メールの送信を停止 * wp_fatal_error_handler_enabled フィルターをフックする */ add_filter( 'wp_fatal_error_handler_enabled', '__return_false' ); |
$wp_fatal_error_handler_enabled フィルターは、エラーハンドラの有効・無効を制御します。ここに $__return_false をフックすることで、通知機能をオフに切り替えられます。
本番環境では定数を必ず削除するマネジメントの徹底
上記の停止方法は、あくまで開発・検証環境における作業効率向上のためのテクニックです。本番環境では、このエラー通知はサイトの健全性を守る命綱となりますから、絶対に停止すべきではありません。サイトを本番環境へ移行する際には、wp-config.php から追記した define( ‘WP_DISABLE_FATAL_ERROR_HANDLER’, true ); の行を必ず削除することをおすすめします。
【まとめ】一貫性のある運用でストレスフリーな開発を!
厄介な通知メールは、たった一行のコードで停止できることが理解いただけんじゃないでしょうか。これらの手順をプロジェクトの立ち上げ時にテンプレート化し、一貫した運用ルールとして確立すれば、もう無駄なメールに悩まされることはありません。
コーディングに集中し、より質の高い制作物を作り上げていきましょう!


コメント