如果你不是内容型、编辑型网站,修订版本要么直接关掉,要么严格限制数量,没必要让它无限增长。
修订版本本身不是问题,默认“无限保存”才是问题。
为什么一定要处理修订版本
WordPress 每次更新内容,都会生成一条 revision,长期运行后,wp_posts 表里大量数据其实都是历史草稿。
这些数据不参与前台展示、不影响 SEO、不提升转化,却会持续拖慢数据库查询、放大备份体积、增加维护成本。
换句话说:
它是一个长期只消耗资源、不产生收益的默认功能。
你可以怎么选(按使用场景)
不同站点,对“后悔药”的需求完全不同,不存在唯一正确答案。
方案一:彻底禁用(大多数企业站的最优解)
如果你几乎不回滚内容,直接在 wp-config.php 中禁用:
define('WP_POST_REVISIONS', false);
这是系统级控制,对所有文章类型、所有编辑器生效,稳定、省心、不会被主题或插件干扰。
方案二:只保留最新 1–2 个版本(折中方案)
如果你希望留一点回滚空间,但不接受无限堆积:
define('WP_POST_REVISIONS', 2);
每篇内容最多保留最近 2 个修订,旧的自动清理。
对内容偶尔需要回退、但不高频编辑的网站非常合适。
方案三:通过过滤器控制(适合做成插件)
不方便改 wp-config.php,或者想把逻辑交付给客户,可以用过滤器:
add_filter( 'wp_revisions_to_keep', 'specs_wp_revisions_to_keep', 10, 2 );
function specs_wp_revisions_to_keep( $num, $post ) {
return 0;
}
如果你想改成只保留 2 个版本:
function specs_wp_revisions_to_keep( $num, $post ) {
return 2;
}
这种方式属于运行期控制,灵活,可封装,但优先级略低于系统配置。
方案四:已经跑多年的老站,顺手清一次历史垃圾
即使你现在禁用了新修订,旧的 revisions 依然会占空间。
在确认备份无误的前提下,可以清理一次:
DELETE FROM wp_posts WHERE post_type = 'revision';
这一步不会影响现有内容,只是把历史冗余数据清掉。
到底该选哪个?
一句话判断标准:
-
外贸站 / 企业官网 / 产品站 → 方案一 或 二
-
博客 / 内容站 / 多人协作编辑 → 方案二
-
项目交付 / 无法动配置文件 → 方案三
不要纠结“哪种最专业”,
只要记住一条原则就够了:
修订版本必须有上限,否则迟早变成数据库负担。
默认配置不是最佳实践,只是“懒得替你做判断”。