从 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 中删除所有评论数据的主要内容,如果未能解决你的问题,请参考以下文章