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论坛上的一些帖子所建议的,我在文件级别(通过添加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
答案 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);