wp_register_fatal_error_handler()


WordPressのwp_register_fatal_error_handler()関数は、致命的なエラーを処理するためのカスタムハンドラを登録します。PHPの致命的なエラー(Fatal Error)が発生した際に実行される処理を定義できます。

構文

wp_register_fatal_error_handler( callable $handler );
  • $handler(callable)—致命的なエラー発生時に呼び出されるコールバック関数。

例1:基本的なエラーハンドラの登録

致命的なエラーが発生したときにシンプルなメッセージを表示する例。

wp_register_fatal_error_handler(function(){ echo '致命的なエラーが発生しました'; });

例2:ログファイルにエラーを記録

エラー発生時にログファイルに情報を書き込む例。

wp_register_fatal_error_handler(function(){ error_log('Fatal Error Occurred',3,'error.log'); });

例3:管理者にメール送信

エラー発生時に管理者へ通知メールを送信する例。

wp_register_fatal_error_handler(function(){ wp_mail('admin@example.com','Fatal Error','サイトでエラーが発生しました'); });

例4:特定のエラーページへリダイレクト

エラー時にカスタムエラーページへ転送する例。

wp_register_fatal_error_handler(function(){ wp_redirect(home_url('/error-page/')); exit; });

例5:エラー詳細をJSON形式で出力

デバッグ用にエラー情報をJSON形式で返す例。

wp_register_fatal_error_handler(function(){ header('Content-Type: application/json'); echo json_encode(error_get_last()); die(); });

例6:エラー発生時に特定のフックを実行

エラー時に他のWordPressフックをトリガーする例。

wp_register_fatal_error_handler(function(){ do_action('my_custom_fatal_error_action'); });

例7:エラー内容に基づいた条件分岐処理

エラーの種類によって異なる処理を実行する例。

wp_register_fatal_error_handler(function(){ $error = error_get_last(); if($error['type'] === E_ERROR){ /* 処理 */ } });

注意事項

  • この関数はPHP7.0以上で動作します。
  • ハンドラ内でさらにエラーが発生すると無限ループになる可能性があります。
  • 本番環境ではユーザーに詳細なエラー情報を表示しないでください。

関連機能: