我正在使用自定义主题进行开发。该网站工作正常,在过去几天内开始看到此错误
致命错误:对/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 site 和this is 正在执行搜索查询的位置
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
.