WordPress没有显示任何错误/调试消息,即使我对每个设置进行了双重和三重检查。
In php.ini, I have
error_reporting = E_ALL & ~E_NOTICE
display_errors = On
display_startup_errors = On
log_errors = On
track_errors = On
In wp-config.php, I have:
define(\'WP_DEBUG\', true);
define(\'WP_DEBUG_LOG\', true);
define(\'WP_DEBUG_DISPLAY\', true);
@ini_set(\'display_errors\', 1);
error_reporting(E_ALL^E_NOTICE);
但仍然没有显示任何错误。通过使用错误的PHP文件进行测试,我验证了这不是一般的PHP问题,如下所示:
<?php askdjh akjdsh ?>
. 错误显示正确。
最合适的回答,由SO网友:Ginchen 整理而成
问题是由一个插件(wp spamfree)引起的,该插件只需设置error_reporting(0)
.
因此,如果有人有同样的问题,我的建议是搜索整个wp-content/plugins
单词目录,如error_reporting
, display_errors
并且类似于找出你的插件是否篡改了这些设置。
您可以禁用这些插件,也可以自己修复,让开发人员知道他们不应该这样做。
Fixes:
<解决这个问题的一种方法是简单地删除不需要的
error_reporting(0)
.
然而,如果您想确保插件不会显示任何错误(我认为这很愚蠢),另一种方法是替换error_reporting(0)
具有$errlvl = error_reporting(0);
.
这将在中保存您当前所需的错误报告级别$errlvl
. 该功能将使用error_reporting = 0
. 在函数结束时,您可以通过调用error_reporting($errlvl);
.