PHP不推荐使用的错误不会在WordPress仪表板上消失

时间:2012-05-23 14:46:27

标签: php wordpress deprecated error-reporting simplepie

TL; DR:在我们的服务器上升级了PHP,导致WordPress中出现了一堆不推荐的错误,尝试了一些修复,但错误不会消失。

PHP版本:5.3.10 WordPress版本:3.3.2

我的WordPress安装已经启动并运行了一段时间,没有任何抱怨。

本周,我们将服务器上的PHP升级到5.3.10,更新后,WordPress仪表板开始填写如下错误:

Deprecated: Assigning the return value of new by reference is deprecated in /home/random/public_html/wp-includes/class-simplepie.php on line 738

大量(我怀疑116)这样的错误(每个都在不同的行上)出现在

  • 传入链接
  • WordPress博客
  • 插件

正如WordPress论坛上的一些帖子所建议的,我在文件级别(通过添加error_reporting(0);在wp-config.php和/或其他文件的顶部)禁用了错误报告并使用PHP的.ini。 Phpinfo确认error_reporting = 0。

这没有任何效果,警告仍显示在仪表板上。

我尝试禁用所有插件并恢复默认主题(请注意依次启用每个插件以查看其中一个是否导致问题)但错误仍然显示。

接下来,我去了解问题的原因,而不是治疗症状。

Getting deprecated error with Simplepie

Assigning the return value of new by reference is deprecated

指向class-simplepie.php里面有一些过时的语法。

在我的文本编辑器中使用find / replace我交换了

的所有166个实例
=& new

代表

= new

我仍然在仪表板上看到错误。

因此,据我所知,报告中不应有任何错误,如果有错误,则无论如何都不应该出现。

Wordpress未在调试模式下运行。

我的phpinfo粘贴可以在这里找到:http://pastebin.com/Pk68sDL1如果它对任何人有用。

不确定下一步该尝试什么。任何提示都非常感激。

d

4 个答案:

答案 0 :(得分:2)

试试这个,你不会有这个错误:

error_reporting(0);
ini_set("display_errors", "off");
ini_set("display_startup_errors", "off");

或者在服务器的php.ini文件中设置相同的指令。

答案 1 :(得分:1)

我今天遇到了完全相同的问题,我也尝试了你列出的所有解决方案。最终我意识到在我取代之后

=& new

= new

在class-simplepie.php中,我还需要在仪表板中重新加载模块。当您只是刷新浏览器页面,甚至隐藏模块然后再次显示它时,似乎不会发生这种情况。

因此,我在仪表板上突出显示了Incoming Links模块,然后单击Configure。我将RSS提要URL更改为其他任何内容(google.com),点击提交,然后就可以了。刷新该模块,不再有来自class-simplepie.php的弃用错误。对于Wordpress博客模块也是如此,并且也有效。

我唯一想知道的是如何刷新插件模块。它没有配置选项,我无法像其他选项那样重新加载。

编辑:插件模块现在也可以使用。只需要时间重置。

答案 2 :(得分:0)

我也有这些警告。我偶然发现了一个简单的开发人员的消息,这个消息发生在PHP5.3 +中,并且与PHP4的兼容性有关。使用simplepie v1.3-dev降低了这种向下兼容性并修复了它。

GitHub下载

答案 3 :(得分:-1)

将其添加到wp-config.php文件的顶部,紧接在第一个文件之后

error_reporting(0);