我们可以修改wp_is_fatal_error_handler_enabled()
功能有两种:
常数设置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
布尔过滤器:
/**
* Disable the fatal error handler.
*/
add_filter( \'wp_fatal_error_handler_enabled\', \'__return_false\' );
Notes 参见票证#44458
这个wp_fatal_error_handler_enabled
过滤器将覆盖WP_DISABLE_FATAL_ERROR_HANDLER
常数
还要注意,如果常数禁用,而过滤器启用,则可能会出现布尔混淆。
在我的测试中,过滤器方法(作为一个必须使用的插件)没有按预期工作,因此我使用常量。希望我能进一步研究这个问题。
还可以添加自定义drop-in 文件fatal-error-handler.php
进入wp-content
目录(src), 要覆盖WP_Fatal_Error_Handler
根据需要分类。我们必须使用不同的类名,它必须定义handle()
方法作为registered shutdown function.
禁用它的一个简单示例是用一个不执行任何操作的自定义错误处理程序类重写默认错误处理程序类:
<?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
以真实的意愿not 禁用WSOD保护。这是故意的。看见#46825