在WordPress 5.1和5.2中引入了致命错误处理。
它有时被称为死亡的白色屏幕(WSOD)保护。
在使用dev/local安装时,我们有时希望能够在需要时破坏站点,例如,在受保护的端点中工作时,要避免站点的电子邮件恢复过程(请参阅is_protected_endpoint()):
该网站正在经历技术上的困难。请检查您的网站管理电子邮件收件箱的指示。
如何禁用致命错误处理?
发布于 2019-05-08 11:57:38
我们可以通过两种方式修改wp_is_fatal_error_handler_enabled()函数的bool输出:
将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常量的值。
此外,注意可能的bool混淆与不断禁用,但过滤器启用。
在我的测试中,过滤器方法,作为一个必须使用的插件,并不像预期的那样工作,所以我用常量代替。希望我能进一步调查。
还可以在wp-content目录(src)中添加一个自定义下拉文件文件,以便根据需要覆盖WP_Fatal_Error_Handler类。我们必须使用不同的类名,它必须将handle()方法定义为注册关机功能。
禁用它的一个简单示例是使用自定义错误处理程序类覆盖默认的错误处理程序类,该类不执行任何操作:
PHP中的匿名类似乎也能工作:
如果需要,它还可以扩展默认的WP_Fatal_Error_Handler类。
然后是WP_SANDBOX_SCRAPING常数。请参阅#46045
将WP_DEBUG设置为true将not禁用WSOD保护。这是故意的。请参阅#46825
https://wordpress.stackexchange.com/questions/337391
复制相似问题