从 WordPress 中删除所有评论数据

Posted

技术标签:

【中文标题】从 WordPress 中删除所有评论数据【英文标题】:Deleting all comment data from WordPress 【发布时间】:2011-08-19 00:02:04 【问题描述】:

我已经使用 SQL 命令从我的 WordPress 站点中删除了所有 cmets,wp_cmets 和 wp_commentmeta 都是空的。

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

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

有什么想法可以解决这个问题吗?

感谢任何帮助。

问候。

【问题讨论】:

【参考方案1】:

您还需要将 wp_posts 中的 comment_count 字段重置为“0” - 它将其存储在该表中,因此不必每次都从 cmets 表中进行计数....

编辑(基于评论):

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

UPDATE wp_posts set comment_count = 0

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

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

UPDATE yourdbname.wp_posts set comment_count = 0

【讨论】:

感谢您的快速回复,不知道您对SQL很熟悉吗?如果你知道如何大规模做到这一点,那就太好了。【参考方案2】:

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

下次,如果想从帖子中删除评论,请使用帖子 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>';

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

【讨论】:

以上是关于从 WordPress 中删除所有评论数据的主要内容,如果未能解决你的问题,请参考以下文章

PHP Wordpress:从评论中删除nofollow

php 从帖子和页面中删除WordPress评论。

如何删除数以万计的wordpress博客垃圾评论

WordPress 评论被爆了

如何在wordpress中删除评论列

WordPress如何批量删除垃圾评论