[WordPress] 味気ないwp_die()の出力を俺色に染める

メンテナンスページではなくエラーとかで死ぬ時に使うwp_die()が味気ないから変えたいっていう要望に答える

wp_die() で出力されている部分は、wp-includes/functions.phpの2934行目らへんにある _default_wp_die_handler()
これをフィルタ 'wp_die_handler' で上書きすれば変更できる。

手っ取り早いのは、_default_wp_die_handlerをテーマのfunctions.phpにコピペして、中身を俺色に染めたら add_filter で呼び出す方法。

function custom_wp_die_handler( $message, $title = '', $args = array() ) {
// イカしたdie画面のソース
}
add_filter( 'wp_die_handler', 'custom_wp_die_handler' );

クラスにしたい場合は、まずafter_setup_themeでインスタンスを作成してadd_actionでinitに登録:

add_action( 'after_setup_theme', function() {
  $customdie =  new CustomDie();

  add_action('init', array($customdie, 'enable_custom_die'));
} );

そして呼び出されるClass内のメソッドで wp_die_handler を登録する。

  public function enable_custom_die() {
    add_filter( 'wp_die_handler', array($this, 'die_handler') );
  }

  public function die_handler($function){
    if(!is_admin()) {
      return array($this, 'die');
    }
  }

クラス化したサンプル:

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください