Resetting comment count

时间:2010-12-06 作者:GPX

最近,我不得不转移到另一个域,不得不在enw服务器上重新创建所有MySQL表。我注意到一些帖子的评论数量增加了一倍。示例-http://inversekarma.in/scraps/you-dont-mess-with-the-rajinikanth/.

在上面的帖子中,只有4条评论,但这条评论总共有8条评论。我不确定这是否与主题相关,因为这只发生在少数帖子中。

有人能告诉我如何编写MySQL查询来重新统计所有帖子的评论吗?或者是一个插件?

3 个回复
最合适的回答,由SO网友:ariefbayu 整理而成

请尝试以下代码:

WARNING: THIS IS JUST PSEUDOCODE!

$entries = $wpdb->get_results("SELECT * FROM wp_posts WHERE post_type IN (\'post\', \'page\')");

foreach($entries as $entry)
{
    $post_id = $entry->ID;
    $comment_count = $wpdb->get_var("SELECT COUNT(*) AS comment_cnt FROM wp_comments WHERE comment_post_ID = \'$post_id\' AND comment_approved = \'1\'");
    $wpdb->query("UPDATE wp_posts SET comment_count = \'$comment_count\' WHERE ID = \'$post_id\'");
}
you might want to try solution from this page (虽然这不是正确的方式,因为您将为每个帖子添加另一个查询)

SO网友:Jon

似乎是一个常见的问题。尝试此插件:

http://wordpress.org/extend/plugins/web-ninja-comment-count-fixer/

SO网友:UncleZeiv

有一个Wordpress API可用于此:wp_update_comment_count($post_id, $do_deferred). 诚然,它只在一个帖子上运行,尽管它有一个延迟机制来累积许多帖子,只需一次更新计数。

结束

相关推荐

为什么WordPress从MySQL获得的帖子来自虚拟主机名,而不是直接主机名?

我正在Mac上开发一个WordPress网站,运行OS X 10.6.4。在开发过程中,我使用OS X的内置Apache服务器在本地运行该站点。我已经安装了WordPress,并将其连接到OS X的MySQL,没有问题。该网站似乎运行良好,我可以发布、编辑等。WordPress安装在一个名为~/Sites/mysite.dev.我还定制了.hosts 文件和Apachehttpd-vhosts.conf 文件,以重定向对mysite的请求。请转到这个文件夹。所以当我进去的时候http://mysite.d