【WordPress 优化】WordPress 禁用自动保存、历史修订版本及草稿

WordPress在添加修改文章时会自动保存(autosave)和自动草稿(auto-draft)并且还有个修订历史(revision),这些功能非常让人讨厌。它会增加文章ID的数值,使两篇文章ID数值相差很多,让我们这些希望文章ID连续的人感到非常不舒服。

那么我们如何禁用WordPress版本修订历史,禁用WordPress自动保存,禁用WordPress自动草稿功能呢?

方法一:修改 WordPress 配置文件 wp-config.php

1.打开站点根目录 wp-config.php 文件

2.在 $table_prefix = ‘wp_’; 前面添加下面的两行代码:

define('WP_POST_REVISIONS', false);//禁用历史修订版本
define('AUTOSAVE_INTERVAL', false);//自动保存时间设置为一天

如下:

通过上述的方法我们禁用了文章的“历史修订版本”和“自动保存”,但如果我们希望保留最近几个版本的修订记录以免由于误操作导致文章不可恢复,我们也可以直接将 false 修改为具体的正整数!如下:

define('WP_POST_REVISIONS', 5);//保留最新 5 次的修订记录
define('AUTOSAVE_INTERVAL', 360);//每隔 360s 自动保存一次

方法二:修改 WordPress 的主题文件

上面的方法一是直接修改 wp-config.php 可实现了禁用文章修订与自动保存功能,本方法是通过修改主题文件实现禁用文章修订与自动保存功能,这样我们就可以在主题里增加配置选项方便我们随时关闭或开启禁用文章修订与自动保存功能。关键代码我们增加到主题文件 functions.php 里,代码如下:

/** 禁用自动保存 */
add_action('wp_print_scripts', 'woddm_not_autosave');
    function woddm_not_autosave() {
    wp_deregister_script('autosave');
}
/** 禁用文章修订 */
add_filter( 'wp_revisions_to_keep', 'woddm_wp_revisions_to_keep', 10, 2 );
    function woddm_wp_revisions_to_keep( $num, $post ) {
    return 0;
}

如果你想设置文章修订版本的保留数,可以使用如下代码:

//设置指定文章类型( my_custom_post )保留最近 5 次的修订版本
add_filter( 'wp_revisions_to_keep', 'qgg_wp_revisions_to_keep', 10, 2 );
function qgg_wp_revisions_to_keep( $num, $post ) {
    if ( 'my_custom_post' == $post->post_type ) {
        $num = 5;
    }
    return $num;
}

关于该函数的相关文件,大家可以简单查看下程序 wp-includes 文件夹下的 revision.php 文件以及 wp-includes/js 文件夹下的 autosave.js 文件。

方法三:修改 WordPress 的系统文件

禁用WordPress自动保存功能

1.打开 wp-admin/post.php 文件,搜索 if ( 'attachment' !== $post_type ) ,找到以下代码 150-151行
if ( 'attachment' !== $post_type ) {
   wp_enqueue_script( 'autosave' );
}
将这三行用注释符号//注释即可!如下:

2.打开 wp-admin/post-new.php 文件,搜索 wp_enqueue_script( ‘autosave’ );  在代码前面加//将其注释或删除

禁用WordPress自动草稿功能

自动草稿功能的禁用,目前并没有简单有效的函数代码可用,只能修改wp-admin/includes/post.php文件实现,方法如下:
打开 wp-admin/includes/post.php 文件,搜索if ( $create_in_db ) { 找到以下代码 
$post_id = wp_insert_post(
    array(
        'post_title' => __( 'Auto Draft' ),
        'post_type' => $post_type,
        'post_status' => 'auto-draft',
    )
);
$post = get_post( $post_id );
修改为:
global $current_user,$wpdb;
$post = $wpdb->get_row( "SELECT * FROM $wpdb->posts WHERE post_status = 'auto-draft' AND post_type = '$post_type' AND post_author = $current_user->ID ORDER BY ID ASC LIMIT 1" );
if (!($post) ) {
    $post_id = wp_insert_post(
        array(
            'post_title' => __( 'Auto Draft' ),
            'post_type' => $post_type,
            'post_status' => 'auto-draft',
        )
    );
    $post = get_post( $post_id );
}

如下:

以上就是禁用WordPress自动保存、自动草稿、文章修订功能的方法,希望对大家有所帮助。

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!ckill@qq.com
2. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!
3. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 本站不保证所提供下载的资源的准确性、安全性和完整性,源码仅供下载学习之用!
8. 如用于商业或者非法用途,与本站无关,一切后果请用户自负!
9. 如遇到加密压缩包,默认解压密码为"woddm_com",如遇到无法解压的请联系管理员!
我的代码 - 专注收录分享各类经典源码及网站模板! » 【WordPress 优化】WordPress 禁用自动保存、历史修订版本及草稿

提供最优质的资源集合

立即查看 了解详情