Wordpress:自动删除x天以后的帖子?

时间:2011-03-15 20:23:23

标签: sql wordpress

很长一段时间以来,我一直在搜索一个能够删除超过某个“年龄”(例如30天)的帖子的插件。这样做的最佳方式是什么?

3 个答案:

答案 0 :(得分:5)

这里有一些SQL可以找到已经存在30天或更长时间的每篇帖子:

SELECT * FROM `wp_posts`
WHERE `post_type` = 'post'
AND DATEDIFF(NOW(), `post_date`) > 30

要删除所有帖子,您可以将SELECT * FROM替换为DELETE FROM - 但请确保在执行此操作之前进行备份!

然后,您可以只是cron,无论您喜欢什么,都可以使用shell脚本,PHP脚本或任何您最熟悉的内容。

答案 1 :(得分:4)

delete a,b,c,d
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON ( a.ID = b.object_id )
LEFT JOIN wp_postmeta c ON ( a.ID = c.post_id )
LEFT JOIN wp_term_taxonomy d ON ( d.term_taxonomy_id = b.term_taxonomy_id )
LEFT JOIN wp_terms e ON ( e.term_id = d.term_id )
WHERE e.term_id =<category id>
AND a.post_type = 'post'
AND DATEDIFF(NOW(), a.post_date) > 30

Reference

答案 2 :(得分:0)

删除30天后的命令是:

delete FROM `wp_posts`
WHERE `post_type` = 'post'
AND DATEDIFF(NOW(), `post_date`) > 30