提问人:mynameisdev 提问时间:5/23/2012 最后编辑:Communitymynameisdev 更新时间:10/11/2012 访问量:5079
PHP 已弃用的错误不会在 WordPress 仪表板上消失
PHP Deprecated errors won't disappear on WordPress Dashboard
问:
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。
这没有效果,警告仍然显示在仪表板上。
我尝试禁用所有插件并恢复到默认主题(注意依次启用每个插件,看看其中一个是否导致了问题),但错误继续出现。
接下来,我没有治疗症状,而是去看看是否可以解决问题的原因。
和
指出class-simplepie.php里面有一些过时的语法。
在我的文本编辑器中使用查找/替换,我交换了所有 166 个实例
=& new
为
= new
我仍然在仪表板上看到错误。
所以,据我所知,不应该有错误要报告,如果有,它们无论如何都不应该出现。
Wordpress 未在调试模式下运行。
我的phpinfo的粘贴可以在这里找到:http://pastebin.com/Pk68sDL1 它是否对任何人有用。
不知道接下来要尝试什么。任何提示非常感谢。
D
答:
将其添加到wp-config.php文件的顶部,紧跟在第一个文件之后
error_reporting(0);
评论
我今天遇到了完全相同的问题,我也尝试了您列出的所有解决方案。最终我意识到,在我更换后
=& new
跟
= new
在 class-simplepie.php 中,我还需要在仪表板中重新加载模块。当您只是刷新浏览器页面,甚至隐藏模块然后再次显示它时,这似乎不会发生。
因此,我在仪表板上突出显示了“传入链接”模块,然后单击“配置”。我将 RSS 提要 URL 更改为其他任何内容 (google.com),点击提交,它起作用了。刷新了该模块,不再出现class-simplepie.php中已弃用的错误。对 Wordpress 博客模块做了同样的事情,这也奏效了。
我唯一想不通的是如何刷新插件模块。它没有“配置”选项,我无法让它像其他人一样重新加载。
编辑:插件模块现在也可以使用。只是需要时间重置。
我也有这些警告。我偶然发现了 simplepie 开发人员的一条消息,说这发生在 PHP5.3+ 上,并且与 PHP4 的兼容性有关。使用 simplepie v1.3-dev 会降低这种向下的兼容性并修复它。
从 GitHub 下载
试试这个,你不会有这个错误:
error_reporting(0);
ini_set("display_errors", "off");
ini_set("display_startup_errors", "off");
或者在服务器的 php.ini 文件中设置相同的指令。
评论