1

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

PHP 版本:5.3.10 WordPress 版本:3.3.2

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

本周,我们将服务器上的 PHP 升级到 5.3.10,更新后,WordPress Dashboard 开始出现如下错误:

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。

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

我尝试禁用所有插件并恢复为默认主题(注意依次启用每个插件以查看其中一个是否导致问题),但错误继续出现。

接下来,我没有治疗症状,而是去看看是否可以解决问题的原因。

使用 Simplepie 出现不推荐使用的错误

不推荐通过引用分配 new 的返回值

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

在我的文本编辑器中使用查找/替换我交换了所有 166 个实例

=& new

为了

= new

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

因此,据我所见,不应该报告任何错误,如果有,它们也不应该出现。

Wordpress 未在调试模式下运行。

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

不知道接下来要尝试什么。非常感谢任何提示。

D

4

4 回答 4

2

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

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

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

于 2012-07-15T17:22:05.880 回答
1

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

=& new

= new

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

因此,我在仪表板上突出显示了传入链接模块并单击了配置。我将 RSS 提要 URL 更改为其他任何内容(google.com),点击提交,它就起作用了。刷新了该模块,不再有来自 class-simplepie.php 的弃用错误。对 Wordpress 博客模块做了同样的事情,这也有效。

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

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

于 2012-06-06T00:16:17.717 回答
0

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

GitHub下载

于 2012-06-20T15:19:38.280 回答
-1

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

error_reporting(0);
于 2012-05-23T14:52:57.733 回答