今天下午在泪雪博客看到有网友留言叫子凡给写个WordPress 4.7禁用自动保存、自动草稿、修订版本功能的教程,然后就去博客搜索了一番发现之前也没有相关的记录和分享,同时也为了解决一个之前遗留的问题,所以子凡就详细的来写写吧!

首先还是让子凡来科普一下,所谓的文章修订版就是当每次修改文章的时候,WordPress程序都会自动保存一次修改之前的文章版本,专业术语叫做版本控制,这样保证了在误修改的情况下可以还原之前的内容,不可否认这个功能还是非常的人性化的,但是对于像子凡这样追求数据干净不多于的人来说,这个功能似乎也并没有太大的意义,而且使用WordPress的许多小网站或博客都是没有这种必要的,重点是会在数据库产生极多无用的数据,从而使得数据库越来越臃肿。

WordPress文章禁用自动保存、修订版本的两种方法(最新)

虽然子凡也曾因为各种突发情况导致数据丢失或者想回退,但是依然选择禁用,因为平时写文章都习惯同记事本直接写,在电脑上,然后边写边保存,而且做到了文章格式的极简化。好了废话就不多说了,下面子凡有两个有效的方法可以教大家禁用WordPress的自动保存、自动草稿、修订版本功能。

方法一、通过修改WordPress配置文件实现功能禁用

不得不说,WordPress有非常多的隐藏功能都是可以通过WordPress安装根目录下的wp-config.php这个配置文件来实现功能的启用禁用等。

1
2
3
4
5
6
7
8
9
10
11
//禁用自动保存
define(‘AUTOSAVE_INTERVAL’, false);
 
//设置自动保存间隔/秒
define(‘AUTOSAVE_INTERVAL’, 120);
 
//禁用文章修订
define('WP_POST_REVISIONS', false);
 
//设置修订版本最多允许几个
define('WP_POST_REVISIONS', 3);

方法二、当前使用主题functions.php文件添加代码

1.禁用WordPress自动保存

1
2
//禁用自动保存(方法一)
add_action( 'admin_print_scripts', create_function( '$a', "wp_deregister_script('autosave');" ) );
1
2
3
//禁用自动保存(方法二)
add_action('wp_print_scripts', 'fanly_no_autosave');
function fanly_no_autosave() { wp_deregister_script('autosave'); }

提示,以上是两种禁止WordPress自动保存的方法,所以编辑长文章前请注意手动保存,或者使用记事本等软件先编辑好在复制到WordPress编辑框中发布,以防在写输入突发情况数据丢失的情况发生。

2.禁用WordPress修订版本

1
2
3
//禁用所有文章类型的修订版本
add_filter( 'wp_revisions_to_keep', 'fanly_wp_revisions_to_keep', 10, 2 );
function fanly_wp_revisions_to_keep( $num, $post ) { return 0;}
1
2
3
4
5
6
7
8
//禁用某种文章类型的修订版本
add_filter( 'wp_revisions_to_keep', 'fanly_wp_revisions_to_keep', 10, 2 );
function fanly_wp_revisions_to_keep( $num, $post ) {
    if ( 'post_type' == $post->post_type ) { //引号中post_type改为你想禁用修订版本的文章类型
        return 0;
    }
    return $num;
}

常见WordPress常见默认有的文章类型有:

  • 文章(Post Type: ‘post’)
  • 页面(Post Type: ‘page’)
  • 附件媒体(Post Type: ‘attachment’)
  • 修订版本(Post Type: ‘revision’)
  • 导航菜单(Post Type: ‘nav_menu_item’)

当然如果网站使用了自定义文章类型,那么就是自定义的名称了。

关于WordPress自动草稿

不得不吐槽一下这个功能,让人有些不爽,凡是我们通过WordPress后台点击“写文章”,WordPress就会自动在数据库里面创建一个自动草稿的记录,如果你继续添加内容发布,这个自动草稿会被自动转换为你的文章,也就是说会自动改变状态,这就是一篇正常的文章了,没有任何冗余的数据或者自动草稿的存在,那么另外一种情况就是当我们点击写文章后,直接离开或者刷新了,WordPress的数据表中将会留下一条自动草稿的记录。所以我们只能通过一些插件去清除,例如子凡之前推荐的《WordPress数据库清理优化插件WP Clean Up》。

而且WordPress的自动草稿没办法通过WordPress wp-config.php配置,或者添加相关的代码直接禁用,当然这个也是可以理解的,因为当我们点击写文章后WordPress就自动的给新文章在数据库中指定了一个文章ID记录,只是文章的默认状态被设置为自动草稿了而已。所以我们可以确定,WordPress的文章ID并不是在我们点击发布或者保存才及时生成的,而是在我们点击写文章就指定了的。所以也不必过于纠结这个问题了,只有我们养成一个良好的发布文章的习惯,也是可以避免这个问题的。

当然网上还有通过修改WordPress源码来实现禁止WordPress自动草稿的方法,这里子凡就不做评论了,只能说大家都挺能折腾的,因为WordPress每次升级会替换文件,所以这样是没有意义的。

写在最后:以上方法均可实现相关功能,大家选择性使用就好,子凡个人不太喜欢使用方法一中利用修改WordPress配置文件来实现功能,不是因为不好,可能是自己心理觉得不喜欢改配置文件,仅此而已。当然,以上方法子凡是在WordPress 4.7版本实测有效的啦!理论上是支持3.0版版以后的,如有疑问欢迎大家留言反馈咯。

除非注明,否则均为泪雪博客原创文章,转载请以链接形式标明本文地址

本文链接:https://zhangzifan.com/wordpress-autosave-and-post_revisions.html

发表评论

  1. 我辈博客
    1楼
    我辈博客 4个月前 (01-23)

    爱情密码页居然用了同一个模板。。

  2. 山野愚人居
    2楼
    山野愚人居 5个月前 (01-06)

    并没有完全去除呢,点“写文章”,但是不写任何内容退出“写文章”页面,数据库里又有auto-draft出现了,这个只适用于写文章时一竿子到底,千万不能点写文章后直接退出……

    • 张子凡
      回复
      张子凡 5个月前 (01-07)
      回复 @山野愚人居 :这个在文章已经说明过该问题,WordPress在进入写文章的页面就会自动生成一个自动草稿,也就是创建了文章的ID,而不是等你保存了才生成的文章ID,所以目前没有更好的方法解决这个问题,除非修改WordPress源代码,但是不推荐。当然,谁会没事点进入又退出呢?只要是写了东西,保存了或者发布了自动草稿都是会没有的。
  3. leng4
    3楼
    leng4 6个月前 (12-10)

    学习,博客主题不错。

  4. 翻墙软件
    4楼
    翻墙软件 6个月前 (12-10)

    进来学习学习。

  5. 翻墙软件
    5楼
    翻墙软件 6个月前 (12-10)

    照你的方法试试。

  6. 动感单车
    6楼
    动感单车 6个月前 (12-09)

    不知道这个方法,是否同样适用于4.6.1版本呢?因为本人暂时还不想升级,烦请博主告知一声,谢谢!

    • 张子凡
      回复
      张子凡 6个月前 (12-09)
      回复 @动感单车 :适用于WordPress 4.6.1的
  7. 苏航
    7楼
    苏航 6个月前 (12-08)

    非常感谢子凡,这下可以放心升级4.7了。

    • 张子凡
      回复
      张子凡 6个月前 (12-08)
      回复 @苏航 :哈哈哈,放心升级吧