WordPress文章如何禁止自动保存草稿/禁用修订版本?

WordPress的自动保存、自动草稿和修订版本功能,一直受到网络营销人员的批评。

不过,WordPress是世界上最受欢迎的网站程序:

  • WordPress功能非常强大;
  • 再加上无限的可扩展性;
  • 所以WordPress在个人和企业客户中,非常受欢迎。

WordPress自动保存功能有什么用?

WordPress自动保存可防止编辑器意外关闭并导致文章内容丢失。

  • 例如,网络突然断开连接,突然断电等等……
  • 编辑文章很困难,并且文章已经消失……
  • 此刻,是非常意外的!

但是,此功能可能会导致数据库膨胀,并无缘无故地添加大量无用的垃圾。

幸运的是,有一个WordPress插件Easy WP Cleaner” 可以删除这些垃圾。

问题就在于这种“减肥过程”非常痛苦,本文会分享解决此问题的最好方法。

WordPress文章如何禁止自动保存草稿/禁用修订版本?

WordPress自动保存和自动草稿有何不同?

WordPress的另一个非常烦人的功能是自动草稿。

  • 自动草稿与自动保存类似,自动保存就是你撰写文章的时候。
  • 文章会根据时间间隔,自动备份并写入数据库。
  • 单击“写文章”时自动草稿是新的。

即使你退出编辑器,数据也会写入数据库,无论你是否键入数据。

WordPress修订版本功能有何用处?

实际上WordPress的修订版本功能非常有用,用户可以检查更改并执行版本控制。

事情总是有两面性,就像自动保存功能一样,忽略这些变化会给数据库带来不必要的负担。

  • 如果编辑长文章时,写了大段内容,记得手动点击保存。
  • 或是电脑用记事本软件,先编辑好后复制到WordPress编辑里再发布(能有效避免在文章输入数据库的过程中,出现数据丢失的情况)。

修改WordPress配置文件(方法1 推荐)

其实WordPress中有很多隐藏的功能,可以通过在WordPress安装根目录的wp-config.php文件的功能,根据需求进行配置禁用或启用。

不少使用WordPress建站的朋友,都想禁用WordPress自动草稿,而不是自动保存。

以下代码解决了这个问题。

由于WordPress的机制,无法完全禁用自动保存,但你可以通过设置较长的时间间隔,来实现类似的效果,例如 ▼

define( 'AUTOSAVE_INTERVAL', 3600 ); // 默认是 60,3600秒表示自动保存间隔1小时

设置WordPress修订版本最多允许几个?

// WordPress设置自动保存间隔/秒
define('AUTOSAVE_INTERVAL', 3600);
// WordPress设置修订版本最多允许几个
define('WP_POST_REVISIONS', 3);

你可以将以下定义,添加到你的 WordPress 站点的 wp-config.php 文件中 ▼

define( 'AUTOSAVE_INTERVAL', 3600 ); // 3600秒表示自动保存间隔1小时
define( 'EMPTY_TRASH_DAYS', 7 ); // 在 7 天后被删除
define( 'DISABLE_WP_CRON', true ); // 禁用内部Wp-Cron函数
define('WP_POST_REVISIONS', false ); // 禁用文章修订版本
  • 自动草稿在 7 天未使用后会自动删除。
  • 它们基本上是自动功能清理的,无需担心它们。
  • 测试过设置为 define( 'AUTOSAVE_INTERVAL', 86400 ); 自动保存间隔24小时无法生效。
  • 建议设置自动保存间隔为3600(1小时)。

    禁用WordPress修订版本(方法2)

    如果方法1的禁用文章修订版本无效,需要使用以下WordPress禁用所有文章类型的修订版本的代码。

    请在WordPress主题模板文件functions.php中,添加以下禁用文章修订版本代码 ▼

    // WordPress禁用所有文章类型的修订版本
    add_filter( 'wp_revisions_to_keep', 'cwl_wp_revisions_to_keep', 10, 2 );
    function cwl_wp_revisions_to_keep( $num, $post ) { return 0;}

    WordPress禁用某种文章类型的修订版本的代码 ▼

    // WordPress禁用某种文章类型的修订版本
    add_filter( 'wp_revisions_to_keep', 'cwl_wp_revisions_to_keep', 10, 2 );
    function cwl_wp_revisions_to_keep( $num, $post ) {
    if ( 'post_type' == $post->post_type ) { //引号中post_type改为你想禁用修订版本的文章类型
    return 0;
    }
    return $num;
    }

    至于WordPress自动草稿,你无法禁用它们,有个重要的原因。

    Audrey Capital(Matt Mullenweg 的天使投资公司)的技术忍者 Samuel 'Otto' Wood说:

    之所以存在自动草稿,是因为多个用户可以同时创建新帖子。如果两个人几乎在同一时间进入 post-new,然后他们的第一次自动保存几乎同时发生,那么就会出现竞争条件,可能导致其中一个人取回错误的帖子 ID,这将导致帖子被覆盖/丢失,当他们继续编辑帖子时。

    自动草稿会在显示编辑屏幕之前创建帖子并获取新帖子的 ID,从而防止两个同时作者在浏览器的数据中意外地拥有相同的帖子 ID。

    负责 WordPress 的 TinyMCE 集成的 Andrew Ozz说:

    这也使得在保存第一个草稿之前上传图像成为可能,并且它们将准确地附加到新帖子中。

    对于使用带有古腾堡编辑器的 WordPress 5.0+ 版本的人,下面的代码片段可以禁用自动草稿/保存 ▼

    /**
     * 禁用古腾堡编辑器自动保存 (间隔 3600秒)
     */
    add_filter( 'block_editor_settings', 'cwl_block_editor_settings', 10, 2 );
    function cwl_block_editor_settings( $editor_settings, $post ) {
        $editor_settings['autosaveInterval'] = 3600;
        return $editor_settings;
    }

     

    希望陈沩亮博客( https://www.chenweiliang.com/ ) 分享的《WordPress文章如何禁止自动保存草稿/禁用修订版本?》,对您有帮助。

    欢迎分享本文链接:https://www.chenweiliang.com/cwl-1580.html

    欢迎加入陈沩亮博客的 Telegram 频道,获取最新更新!

    喜欢就分享和按赞!
    您的分享和按赞,是我们持续的动力!