WordPress的自动保存、自动草稿和修订版本功能,一直受到网络营销人员的批评。
不过,WordPress是世界上最受欢迎的网站程序:
WordPress自动保存功能有什么用?
WordPress自动保存可防止编辑器意外关闭并导致文章内容丢失。
但是,此功能可能会导致数据库膨胀,并无缘无故地添加大量无用的垃圾。
幸运的是,有一个WordPress插件 “Easy WP Cleaner” 可以删除这些垃圾。
问题就在于这种“减肥过程”非常痛苦,本文会分享解决此问题的最好方法。
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 ); // 禁用文章修订版本
禁用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; }