D1763-WordPress禁用修订版和自动保存功能

前言

依然是最近改版需要动到数据库,并且榆桦之前也一直是禁用修订版本的,最近发现不知道什么原因,修订版本又死灰复燃了。

这里说明一下,自动保存,和修订版本是WordPress非常实用的共,在修改文章后,如果出现不满意或其他意外情况之下,为站长们恢复到修改之前版本,提供了可能。

但是,使用 WordPress 的许多小网站博客都是没有这种必要的,重点是会在数据库产生极多无用的数据,从而使得数据库越来越臃肿。所以各位如果有需要,还请自行酌情考虑是否关闭该功能

介绍

虽然榆桦偶尔也会遇到需要恢复文章数据的情况,但是榆桦还是选择关闭,下面提供两个有效的方法可以教大家禁用 WordPress 的自动保存、自动草稿、修订版本功能。

方法一:利用 wp-config.php 配置文件启用或禁用 WordPress 功能

WordPress 的强大之处在于其灵活性和可扩展性,这其中包括通过其核心配置文件 wp-config.php 来启用或禁用某些隐藏功能的能力。wp-config.php 文件位于 WordPress 安装的根目录下,是 WordPress 初始化过程中非常重要的一个文件,它包含了数据库连接信息以及一些重要的配置指令。

//禁用自动保存
define('AUTOSAVE_INTERVAL', false);
 
//设置自动保存间隔/秒
define('AUTOSAVE_INTERVAL', 120);
 
//禁用文章修订
define('WP_POST_REVISIONS', false);
 
//设置修订版本最多允许几个
define('WP_POST_REVISIONS', 3);

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

  1. 禁用 WordPress 自动保存
//禁用自动保存(方法一)
add_action( 'admin_print_scripts', create_function( '$a', "wp_deregister_script('autosave');" ) );
//禁用自动保存(方法二)
add_action('wp_print_scripts', 'fanly_no_autosave');
function fanly_no_autosave() { wp_deregister_script('autosave'); }
  1. 禁用 WordPress 修订版本
//禁用所有文章类型的修订版本
add_filter( 'wp_revisions_to_keep', 'fanly_wp_revisions_to_keep', 10, 2 );
function fanly_wp_revisions_to_keep( $num, $post ) { return 0;}
//禁用某种文章类型的修订版本
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’)

更新一个新方法:

// 这是开始定义配置常量的地方,确保这行代码在最前面。
define('WP_POST_REVISIONS', false);

// 然后加载WordPress的设置文件,此行代码必须放在常量之后。
require_once ABSPATH . 'wp-settings.php';

将代码复制到wp-config.php即可,这适合仅禁用修订版本功能,自动保存不会被禁用。这样不怕突然断电之类的了。不过会产生文章ID。

  1. 此外,禁用之后,数据库依然有数据,需要手动清理,这里以PHPMySql为例:
DELETE FROM wp_posts WHERE post_type = 'revision';

复制代码到数据库SQL中执行。

  1. 删除文章修订版本后,您可能还需要清理与修订版本相关的元数据。可使用以下命令删除与这些修订版本相关的元数据:
DELETE pm FROM wp_postmeta pm
INNER JOIN wp_posts wp ON wp.ID = pm.post_id
WHERE wp.post_type = 'revision';

同样复制到数据库SQL中执行。

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容