很长一段时间以来,我一直在搜索一个能够删除超过某个“年龄”(例如30天)的帖子的插件。这样做的最佳方式是什么?
答案 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
答案 2 :(得分:0)
删除30天后的命令是:
delete FROM `wp_posts`
WHERE `post_type` = 'post'
AND DATEDIFF(NOW(), `post_date`) > 30