関数のブール出力をwp_is_fatal_error_handler_enabled()
2つの方法で変更できます。
絶え間ない
WP_DISABLE_FATAL_ERROR_HANDLER
定数をファイルtrue
内に設定しwp-config.php
ます。
/**
* Disable the fatal error handler.
*/
const WP_DISABLE_FATAL_ERROR_HANDLER = true;
または
define( 'WP_DISABLE_FATAL_ERROR_HANDLER', true );
フィルタ
wp_fatal_error_handler_enabled
boolフィルターを使用します。
/**
* Disable the fatal error handler.
*/
add_filter( 'wp_fatal_error_handler_enabled', '__return_false' );
ノート
チケット#44458を参照してください
wp_fatal_error_handler_enabled
フィルタは、の値が上書きされますWP_DISABLE_FATAL_ERROR_HANDLER
定数を。
また、一定の無効化とフィルターの有効化とのブールの混乱の可能性に注意してください。
私のテストでは、必須のプラグインとしてのフィルターアプローチが期待どおりに機能しないため、代わりに定数を使用しています。うまくいけば、私はこれをさらに調査することができます。
カスタムドロップインファイルfatal-error-handler.php
をwp-content
ディレクトリ(src)に追加して、WP_Fatal_Error_Handler
必要に応じてクラスをオーバーライドすることもできます。別のクラス名を使用する必要がありhandle()
、登録されたシャットダウン関数としてメソッドを定義する必要があります。
これを無効にする簡単な例は、デフォルトのエラーハンドラクラスを何もしないカスタムクラスでオーバーライドすることです。
<?php
class WPSE_Fatal_Error_Handler {
public function handle() {}
}
return new WPSE_Fatal_Error_Handler;
PHP 7以降の匿名クラスも同様に機能するようです。
<?php
return new Class(){
public function handle() {}
};
WP_Fatal_Error_Handler
必要に応じて、デフォルトのクラスを拡張することもできます。
次にWP_SANDBOX_SCRAPING
定数があります。#46045を参照
WP_DEBUG
をtrueに設定しても、WSOD保護は無効になりません。これは仕様によるものです。#46825を参照