A-
A+
WordPress 4.1+关闭自动保存草稿功能 最新在5.2版本测试通过 全网唯一有效的方法
WordPress的自动保存功能在我看来是一道伤,鸡肋的很纠结。虽然他的初衷是为了保存用户的文章,以防万一出现意外的情况而丢失。可惜在逻辑上对于自动保存处理的很不好,特别是对于ID有洁癖的人来说更是如此,虽然我不是以ID来命名博客标题的,但是,我依旧要ID的连续。
网上关于此类的修改不胜枚举,但是很多都是只针对一个版本的,WordPress一更新就失效了,3.0.x系列的修改方法就不适合于3.1.x版本的,很是纠结。
WordPress 4.1+关闭自动保存草稿功能
打开 wp-config.php 文件,在 $table_prefix = ‘wp_’; 前面添加下面的两行代码:
define('WP_POST_REVISIONS', false);//禁用历史修订版本
define('AUTOSAVE_INTERVAL', false);//自动保存时间设置为一天
打开 wp-admin/post.php 文件,搜索并注释(备注:2024.02.16在5.2上测试,注销两行会出错,只注销第二行即可)
if ( 'attachment' !== $post_type )
// wp_enqueue_script('autosave');
然后找到把70到76行,把中间的74行注释
if ( apply_filters( 'replace_editor', false, $post ) !== true ) {
if ( use_block_editor_for_post( $post ) ) {
include( ABSPATH . 'wp-admin/edit-form-blocks.php' );
} else {
// wp_enqueue_script( 'autosave' );
include( ABSPATH . 'wp-admin/edit-form-advanced.php' );
}
打开 wp-admin/post-new.php 文件
把185到187行中间的186行注释
if ( 'attachment' !== $post_type ) {
// wp_enqueue_script( 'autosave' );
}
打开 wp-admin\includes\post.php 文件,搜索并修改
/* 修改-注释两行代码禁用自动草稿*/
/*
$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 );
}
/* 修改结束 */
这个原文作者写的不明白,我来重新解释一下:
打开 wp-admin\includes\post.php 文件 找到662-669行 大约是这个位置,反正5.2是这个位置。
把下面的代码
$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 );
}
/* 修改结束 */
我在2026年重新写了一篇,推荐同时看这一篇:
WordPress最新2026年关闭禁用自动草稿 自动修订的方法,亲自测试有效 !
WordPres3.X的太老了,不转了,喜欢看的去下面原文看
转自:https://www.weisay.com/blog/close-wordpress-auto-draft.html
