如何按日期删除已批准的垃圾评论?

时间:2012-03-24 作者:Brad Dalton

需要删除数据范围内的1000条垃圾邮件评论,而不删除合法评论

1 个回复
SO网友:soulseekah

不幸的是,据我所知,WordPress没有提供任何按日期范围选择评论的功能。虽然你可以wp_delete_comment 在循环中,这将花费不必要的时间。

作为WordPress database entity relationship diagram shows, 评论仅限于wp_comments 表和wp_commentmeta 方便的桌子。

使用MySQL命令行客户端或phpMyAdmin直接发出查询。如果您:

SELECT * FROM `wp_comments` LIMIT 1
。。。您将看到注释数据的结构。comment_datecomment_date_gmt 是你要玩的领域BETWEEN 具有comment_date 是在“设置/常规”中设置的时区设置的注释偏移日期。comment_date_gmt 是UTC+0时间,这是普遍真理。

SELECT * FROM `wp_comments` WHERE `comment_date` BETWEEN \'2010-01-15 00:00:00\' AND \'2012-01-15 00:00:00\';
无需解释。一旦你backed up your database (我是认真的,请支持,事情可能会出错),您可以自由:

DELETE FROM `wp_comments` WHERE `comment_date` BETWEEN \'2010-01-15 00:00:00\' AND \'2012-01-15 00:00:00\';
现在,正如数据库结构所示,我们将在wp_commentmeta 桌子

SELECT * FROM `wp_commentmeta` WHERE `comment_ID` NOT IN (SELECT `comment_ID` FROM `wp_comments`);
子查询将处理这些问题。一旦你觉得舒服,就用SELECT * 对于DELETE FROM.

要安排这样的清理,比如“删除所有超过一年的评论”,您需要将这些查询与不同风格的wp_schedule_event 以及wpdb 类以发出查询。要构建日期,请使用date functions 由WordPress提供。

结束

相关推荐

将另一个参数添加到Comments_Popup_link

我必须修改哪些WordPress核心功能才能更改comments_popup_link(\'Ni komentarjev\', \'1 komentar\',\'% komentarjev\') 至comments_popup_link(\'Ni komentarjev\', \'1 komentar\', **\'2 komentarja\',** \'% komentarjev\') 我想为两条评论添加一个论点。要向该函数添加哪些行?我之所以想这样做,原因很简单,在我的母语中,复