我想知道你们中是否有人已经在 PHP 或 mysql 中实现了这样一个通过 cronjob 运行的脚本。
我想用一个简单的命令删除最近几天内发布的所有帖子。 我想知道是否
DELETE FROM wp_posts WHERE post_date < DATE_SUB(NOW(), INTERVAL 30 DAY);
要去那里工作。你有什么建议?
最佳答案
你的一行 MySQL 是不够的。要完全删除帖子,您还需要删除以下内容:
- 来自
wp_postmeta
表的相关帖子元数据 - 来自
wp_comments
表的评论 wp_commentmeta
表中这些评论的元数据
在提供实际解决方案方面,以下插件可以满足您的需求:
- https://wordpress.org/plugins/auto-prune-posts/
- https://wordpress.org/plugins/bulk-delete/
- https://wordpress.org/plugins/post-expirator/
此外,如果您只是想保持数据库整洁,您可以将这行代码添加到您的 wp-config.php
文件 define( 'WP_POST_REVISIONS', 8 );
这会阻止 WordPress 在数据库中创建无限数量的后期修订。不是您所说的问题,但很方便。
关于php - 删除最近 X 天内在 WordPress 中发布的所有帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34123894/