问题描述

我正在清理一个老的,有争议的博客条目,我需要从帖子中删除所有的评论。

令人惊讶的是,在现有的 WordPress(3.0.4)UI 中找不到一种方法。

我可以通过所有 200 多个评论点击”trash”,但这似乎过度。有没有另一种方法来做,我失踪了?

最佳解决方案

阅读此文的人对于 SQL 的恐惧……………(或者在 2011 年 Januari 之后通过 Google 发现):

等待这个动作,直到 3.1 出来,然后去一个帖子,检查所有评论和批量 「移动到垃圾」:)(它应该出来任何一天现在)(http://wordpress.org/about/roadmap/)

(或从 http://wordpress.org/download/release-archive/下载 3.1 RC3)

例:

http://edward.de.leau.net/files/bulkremove.png

次佳解决方案

WordPress 不支持通过邮寄方式批量管理对帖子的评论。虽然它直接在帖子的编辑页面上有一个注释管理部分。如您所说,您必须在每个评论上单击”Trash”:

或者,您可以备份 wp_comments 和 wp_commentmeta 表并运行以下查询:

  1. 查找帖子 ID 。让我们说相关的 id 是 X.

    SELECT ID from wp_posts WHERE post_type='post' AND post_title='Hello world!' INTO @x;
    
  2. 添加相关评论元数据只是为了保持诚信:

    INSERT INTO wp_commentmeta (comment_id, meta_key, meta_value) SELECT comment_ID, "wp_trash_meta_time", UNIX_TIMESTAMP() FROM wp_comments WHERE comment_post_ID=@x;
    
    INSERT INTO wp_commentmeta (comment_id, meta_key, meta_value) SELECT comment_ID, "wp_trash_meta_status",comment_approved FROM wp_comments WHERE comment_post_ID=@x;
    
  3. 垃圾所有评论:

    UPDATE wp_comments SET comment_approved='trash' WHERE comment_post_ID=@x;
    

第三种解决方案

嗨 @Jeff Atwood:

我假设你有 MySQL 查询访问。这将为您的博客文章提供所有评论,其网址是'your-blog-post'(如果您使用漂亮的永久链接,则是您的帖子网址的最后一个段落,即 http://example.com/2011/01/foo-bar-baz/您的插件将是'foo-bar-baz'):

SELECT * from wp_comments WHERE comment_post_ID IN (
  SELECT ID FROM wp_posts WHERE post_name='your-post-slug'
)

这将给你所有的评论元数据:

SELECT * from wp_commentmeta WHERE comment_id IN (
  SELECT comment_ID from wp_comments WHERE comment_post_ID IN (
    SELECT ID FROM wp_posts WHERE post_name='your-post-slug'
  )
)

所以… 运行这两个命令 (但请确保将 post_name 值替换为等于您的)

DELETE from wp_commentmeta WHERE comment_id IN (
  SELECT comment_ID from wp_comments WHERE comment_post_ID IN (
    SELECT ID FROM wp_posts WHERE post_name='your-post-slug'
  )
);

DELETE from wp_comments WHERE comment_post_ID IN (
  SELECT ID FROM wp_posts WHERE post_name='your-post-slug'
);

附:这当然会完全删除它们,但是除非你想要将它们保存在垃圾箱中,否则将它们移动到垃圾桶中更容易。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。