从WordPress删除所有评论数据

时间:2011-05-05 01:28:11

标签: mysql sql database wordpress comments

我已经使用SQL命令从我的WordPress网站删除了所有评论,wp_comments& wp_commentmeta是空的。

这已删除了所有评论,但我目前遇到的问题是它仍然显示旧评论编号:<?php comments_number('0 Comments','1 Comment','% Comments'); ?>

例如,帖子仍然会显示:“4评论”显示,即使这些评论不存在。

有关如何解决此问题的任何想法?

感谢任何帮助。

问候。

2 个答案:

答案 0 :(得分:1)

你需要将wp_posts中的comment_count字段重置为'0' - 它将它存储在该表中,这样它就不必每次都从评论表中进行计数....

编辑(根据评论):

您可以运行一个非常简单的查询:


UPDATE wp_posts
set comment_count = 0

小心:)这个没有where子句(过滤器)所以一旦你这样做就没有回头了。它将更新您的所有帖子,使评论数量为“0”。如果您可以备份数据库,那就太好了。

此外,取决于您用于运行查询的工具,您可能需要输入数据库名称:


UPDATE yourdbname.wp_posts
set comment_count = 0

答案 1 :(得分:1)

我不建议直接从数据库中删除。由于数据可能具有依赖性,因此最终可能会得到孤立记录。这可能是你的情况。

下次,如果要删除帖子中的评论,请使用帖子 ID(将其添加到 ADDPOSTID 中),保存下面的脚本并将 PHP 文件添加到您的 WordPress 网站的根目录中,登录以管理员身份直接在浏览器上调用该文件:

<?php

require('./wp-load.php');

if ( current_user_can( 'manage_options' ) ) {
    if ( $comments = get_comments( array( 'post_id' => ADDPOSTID ) ) ) {
        foreach ( $comments as $comment ) {
            echo '<p>Deleting comment '.$comment->comment_ID.'</p>';
            wp_delete_comment( $comment->comment_ID, true );
        }
    } else {
        echo '<p>No comments found</p>';
    }
} else {
    echo '<p>Not allowed</p>';
}

这也可能有助于解决当前的问题。