Fatal error in comments.php

时间:2014-06-11 作者:skillguru

我正在使用自定义主题进行开发。该网站工作正常,在过去几天内开始看到此错误

致命错误:对/home/content/29/11116929/html/studyus/wp includes/comment中的非对象调用的成员函数是\\u singular()。php在线2399

错误出现在第2399行

if ( empty( $posts ) || ! $query->is_singular() || ! get_option( \'close_comments_for_old_posts\' ) )     return $posts;
评论。php是wordpress文件,我们没有做任何更改。这就是我迄今为止所做的a)升级到最新版本3.9.1b)禁用所有插件c)检查过的评论。php在我的主题文件中,恢复为基本版本,但仍然存在相同的问题。

这是my sitethis is 正在执行搜索查询的位置

2 个回复
SO网友:skillguru

听起来可能很奇怪,但错误是因为在我发表的一篇帖子中,有一个结尾!!所以我删除了这些帖子,因为这看起来像是个问题。

然后我恢复了其中一个,并试图找出问题所在。

不确定这导致引发异常的原因。可能是因为我在帖子abase mysql和table2chart中使用了两个短代码。

底线是,不要乱动wordpress核心文件

SO网友:engelen

错误源于函数_close_comments_for_old_posts, 它接受两个参数,$posts (数组WP_Post 对象)和$query (WP_Query 对象)。从生成的错误可以看出,问题是$query 传递的不是对象。

默认情况下,_close_comments_for_old_posts 仅通过筛选器调用the_posts. 这个the_posts 默认情况下,过滤器仅应用于WP_Query 对象,传递WP_Post 对象和自身(&$this). 这是一个WP_Query 对象的定义,因为它是从内部调用的WP_Query.

因此,我想说,最好检查代码中是否有the_posts 过滤器已应用(默认情况下,它仅在wp-includes/query.php), 并检查是否_close_comments_for_old_posts 在外面的任何地方都有提及default-filters.php.

结束

相关推荐