WordPress如何关闭自动保存、禁用文章修订版本?2026年最新设置方法

wordpress 默认带有文章自动保存和修订版本功能。

自动保存可以防止浏览器崩溃、网络中断或者误操作造成内容丢失;修订版本则会在文章更新时保存历史版本,方便以后恢复。

这两个功能都很实用,但对于内容更新频繁的网站来说,过多的文章修订版本可能增加数据库中的无用数据。部分站长也不希望 WordPress 频繁向服务器发送自动保存请求,因此会考虑关闭自动保存或者限制修订版本数量。

不过,自动保存和修订版本并不是同一个功能,设置方法也不一样。

WordPress自动保存和修订版本有什么区别?

WordPress 自动保存主要用于保护正在编辑但还没有手动保存的内容。默认情况下,WordPress 大约每60秒执行一次自动保存。

修订版本则是在文章或页面更新后,保存之前的内容版本。每次修改文章并点击“更新”,都可能产生新的修订记录。

需要说明的是,自动保存一般不会每60秒就在数据库中新增一条记录。对于同一篇文章,WordPress 通常只为每位编辑用户保留一份自动保存记录,新的自动保存会覆盖旧记录。

真正容易长期积累的,主要是文章修订版本。

推荐方法:通过wp-config.php统一设置

相比把代码添加到主题的 functions.php,更推荐直接修改网站根目录中的 wp-config.php 文件。

这种方法不会受到主题切换的影响,也不容易因为更新主题而丢失设置。

修改前,建议先备份 wp-config.php 文件,避免因为代码位置或符号错误导致网站无法访问。

打开 wp-config.php,找到下面这行注释:

/* That's all, stop editing! Happy publishing. */

将相关配置添加到这行代码的前面。

不同语言版本中的注释可能不完全一样,只要确保代码添加在加载 wp-settings.php 之前即可。

一、修改WordPress自动保存时间

目前 WordPress 没有提供用于完全关闭自动保存的官方配置项,但可以通过 AUTOSAVE_INTERVAL 修改自动保存间隔。

例如,将自动保存时间修改为5分钟:

define( 'AUTOSAVE_INTERVAL', 300 );

这里的单位是秒:

  • 300代表5分钟;
  • 600代表10分钟;
  • 1800代表30分钟;
  • 3600代表1小时。

WordPress 默认自动保存间隔约为60秒。如果只是想减少服务器请求,将时间改成300秒或600秒通常已经足够。

如果设置成86400秒,相当于24小时自动保存一次:

define( 'AUTOSAVE_INTERVAL', 86400 );

这种设置可以达到接近关闭定时自动保存的效果,但并不代表彻底禁用了自动保存。新建文章时产生的 auto-draft,以及区块编辑器的部分保护机制,仍然可能运行。

WordPress 官方也只提供了修改自动保存间隔的方法,并没有提供类似下面这样的关闭选项:

define( 'AUTOSAVE_INTERVAL', false );

因此,不要使用 false,这里应该填写以秒为单位的整数。

二、关闭WordPress文章修订版本

如果确定不需要恢复文章的历史版本,可以在 wp-config.php 中加入以下代码:

define( 'WP_POST_REVISIONS', false );

这会关闭WordPress后续生成的文章修订版本。

需要注意,这项设置不会删除数据库中已经存在的修订版本,只会阻止以后继续生成新的修订记录。

三、限制文章修订版本数量

相比完全关闭修订版本,更推荐限制每篇文章保留的版本数量。

例如,每篇文章最多保留3个修订版本:

define( 'WP_POST_REVISIONS', 3 );

如果只想保留5个版本,可以修改为:

define( 'WP_POST_REVISIONS', 5 );

WP_POST_REVISIONS只能定义一次,不能同时设置为false和具体数字。

普通个人网站可以保留3至5个修订版本。这样既能减少数据库中的历史数据,又可以在文章改错时恢复之前的内容。

WordPress 官方同时支持关闭修订版本或设置最大保留数量。

四、通过functions.php关闭修订版本

如果没有权限修改 wp-config.php,也可以通过代码关闭修订版本。

建议将代码添加到子主题的 functions.php,或者使用自定义代码管理插件。不要直接修改父主题文件,否则主题更新后代码可能被覆盖。

添加以下代码:

function jaaai_disable_post_revisions( $num, $post ) {
    return 0;
}

add_filter( 'wp_revisions_to_keep', 'jaaai_disable_post_revisions', 10, 2 );

wp_revisions_to_keep过滤器用于控制每篇文章保留多少个修订版本。返回0,表示不再保留新的文章修订版本。

这个过滤器会覆盖 WP_POST_REVISIONS 的设置,因此一般选择一种方法即可,不建议重复配置。

五、旧版关闭自动保存代码为什么不推荐?

网上经常可以看到下面这段代码:

function disableAutoSave() {
    wp_deregister_script( 'autosave' );
}

add_action( 'wp_print_scripts', 'disableAutoSave' );

这段代码通过注销名为autosave的脚本,尝试关闭文章自动保存。

它主要适用于旧版WordPress或经典编辑器。当前WordPress区块编辑器还会通过编辑器组件和REST API处理自动保存,因此仅仅注销这个脚本,不能保证自动保存被完全关闭。

如果网站仍然使用经典编辑器,可以改成更规范的写法:

function jaaai_disable_classic_editor_autosave( $hook_suffix ) {
    if ( ! in_array( $hook_suffix, array( 'post.php', 'post-new.php' ), true ) ) {
        return;
    }

    wp_dequeue_script( 'autosave' );
    wp_deregister_script( 'autosave' );
}

add_action( 'admin_enqueue_scripts', 'jaaai_disable_classic_editor_autosave', 100 );

这段代码只在文章编辑页面执行,但仍然主要针对经典编辑器,不建议把它当成当前区块编辑器的通用解决方案。

六、已经生成的文章修订版本会被删除吗?

不会。

无论使用WP_POST_REVISIONS还是wp_revisions_to_keep,都只能影响以后生成的修订版本,不能自动清理数据库中已经存在的历史记录。

如果需要清理旧修订版本,可以使用经过验证的数据库清理插件。操作前一定要备份数据库,避免误删文章或其他重要数据。

推荐设置方案

对于大多数WordPress网站,建议使用下面的配置:

define( 'AUTOSAVE_INTERVAL', 300 );
define( 'WP_POST_REVISIONS', 3 );

这套设置会将自动保存间隔调整为5分钟,并将每篇文章的修订版本限制为3个。

如果确定完全不需要文章历史版本,可以使用:

define( 'AUTOSAVE_INTERVAL', 300 );
define( 'WP_POST_REVISIONS', false );

不建议彻底关闭自动保存。自动保存占用的数据库空间通常没有想象中那么大,却可以在断网、浏览器崩溃或者后台异常时帮助恢复文章内容。

对于多数网站来说,延长自动保存时间并限制修订版本数量,通常比彻底关闭这两个功能更加安全。

正文完
 0
简子
版权声明:本站原创文章,由 简子 于2022-12-20发表,共计3124字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。