我已经使用SQL命令从我的WordPress网站删除了所有评论,wp_comments& wp_commentmeta是空的。
这已删除了所有评论,但我目前遇到的问题是它仍然显示旧评论编号:<?php comments_number('0 Comments','1 Comment','% Comments'); ?>
例如,帖子仍然会显示:“4评论”显示,即使这些评论不存在。
有关如何解决此问题的任何想法?
感谢任何帮助。
问候。
答案 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>';
}
这也可能有助于解决当前的问题。