使用PHP 5.4禁用WordPress 3.7中的严格标准错误

jer*_*lar 9 php apache wordpress httpd.conf osx-mavericks

在将计算机更新到OS X 10.9后,我试图通过我的php.ini文件禁用WordPress 3.7中的STRICT错误报告.我正在运行PHP版本5.4.17,这是与Mavericks一起提供的版本.

在我的wp-config.php文件中,我已经启用define('WP_DEBUG', true);哪个在升级我的操作系统之前工作正常,因此,PHP.

在php.ini文件中,我尝试将error_reporting设置为:

error_reporting = E_ALL
Run Code Online (Sandbox Code Playgroud)

要么

error_reporting = E_ALL & ~E_STRICT
Run Code Online (Sandbox Code Playgroud)

要么

error_reporting = E_ALL & ~E_DEPRECATED
Run Code Online (Sandbox Code Playgroud)

甚至

error_reporting = 0
Run Code Online (Sandbox Code Playgroud)

但错误仍然存​​在.

display_errors设置为Off:

display_errors = Off
Run Code Online (Sandbox Code Playgroud)

每次更改文件后,我都会使用以下两个命令重新启动apache和httpd:

httpd -k restart
apachectl restart
Run Code Online (Sandbox Code Playgroud)

我正在编辑的php.ini文件与phpinfo()中指向的文件相同,只是为了确保更改正在进行,我一直在编辑error_prepend_string值:

error_prepend_string = "<span style='color: #ff0000'>ERROR: "
Run Code Online (Sandbox Code Playgroud)

这些变化是在错误中发生的.

任何关于如何调试这个的想法将非常感激.

小智 18

在Wordpress 3.7中,函数wp_debug_mode(定义在wp-includes/load.php和调用中wp-setings.php)设置error_reporting( E_ALL ).

由于wp-settings.php本身是在最后加载的wp-config.php,因此您无法更改此设置wp-config.php(或者更确切地说,您可以,但它将被覆盖).

解决方案是创建一个"必须使用的插件",也就是说位于/wp-content/mu-plugins/包含以下内容的文件夹中的.php文件:

<?php
if (WP_DEBUG && WP_DEBUG_DISPLAY) 
{
   ini_set('error_reporting', E_ALL & ~E_STRICT & ~E_DEPRECATED);
}
Run Code Online (Sandbox Code Playgroud)

  • 为获得最佳效果,使用由adelval提供的解决方案,但把它在一个PHP文件,例如:`/可湿性粉剂内容/亩-插件/ errorreporting.php`."mu"代表"必须使用",将在主题和插件之前加载,但在设置了错误报告之后.您也不必激活它,因为它们是"必须使用的". (5认同)