问题描述

我的服务器正在运行 php 5.3,我的 wordpress 安装正在将这些错误发送给我,导致 my session_start() 中断。

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 647

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 662

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 669

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 676

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 712

这很烦人,但我不想关闭屏幕错误报告。如何禁用这些令人遗憾的不赞成的警告?

我正在运行 Wordpress 2.9.2 。

最佳解决方案

您可以通过调用以下函数在代码中执行此操作。

error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

要么

error_reporting(E_ALL ^ E_DEPRECATED);

次佳解决方案

我需要适应这个

error_reporting = E_ALL & ~E_DEPRECATED

第三种解决方案

只能得到错误,导致应用程序停止工作使用:

error_reporting(E_ALL ^ (E_NOTICE | E_WARNING | E_DEPRECATED));

这将停止显示通知,警告和弃用错误。

第四种方案

以上所有答案都是正确的。由于没有人暗示如何关闭 php 中的所有错误,我想在这里提及:

error_reporting(0); // Turn off warning, deprecated,
                    // notice everything except error

有人可能会觉得有用……

第五种方案

我只是遇到一个类似的问题,一个 SEO 插件发出大量的警告,使我的博客磁盘使用超出计划限制。

我发现在 wp-config.php 文件中需要 wp-settings.php 之后,必须包含 error_reporting 命令:

   require_once( ABSPATH .'wp-settings.php' );
   error_reporting( E_ALL ^ ( E_NOTICE | E_WARNING | E_DEPRECATED ) );

通过这样做,不再有警告,通知和废弃的行都附加到您的错误日志文件中!

在 WordPress 3.8 测试,但我猜这是适用于每个安装。

第六种方案

您必须编辑 php 配置文件。结束了

error_reporting = E_ALL

并替换为 error_reporting = E_ALL ^ E_DEPRECATED

如果您无法访问配置文件,您可以将此行添加到 php wordpress 文件 (也可以是 headers.php)

error_reporting(E_ALL ^ E_DEPRECATED);

第七种方案

在文件 wp-config.php 中,您可以找到常量 WP_DEBUG,确保它设置为 false 。

define('WP_DEBUG', false);

这是针对 wordpress 3.x

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。