WordPress 4.1禁用修订历史、自动保存和自动草稿
转载自 http://blog.kuoruan.com/1.html
由于我博客的链接设置为 /%post_id%.html ,Wordpress自带的修订历史、自动保存和自动草稿就显得非常讨厌,会自动增加文章ID造成id不连续,感觉非常不舒服。
(另类方法解决文章ID不连续:解决WordPress博客文章ID不连续)
网上找了很多方法,大多失效了,并不适用于最新的Wordpress 4.1,经过不断寻找测试,发现了一个不太完美的解决方法,需要修改程序源码,但在没找到完美解决方案的现在可以暂时先用着,待以后寻找更好的方案。
1、首先修改根目录下的 wp-config.php 文件,在 define(‘WP_DEBUG’, false); 后边添加如下代码:
1
2
3
|
/** 关闭修订历史和自动保存 **/
define( ‘AUTOSAVE_INTERVAL’, false );
define( ‘WP_POST_REVISIONS’, false );
|
添加后发现自动保存依然存在,然后我又修改当前主题的 functions.php 文件,在最下面PHP结束标签 ?> 之前添加了如下内容:
1
2
3
4
5
6
|
/** 移除自动保存和修订版本 **/
function disable_autosave() {
wp_deregister_script(‘autosave’);
}
add_action(‘wp_print_scripts’,‘disable_autosave’ );
remove_action(‘pre_post_update’,‘wp_save_post_revision’ );
|
2、修改 wp-admin/includes/post.php 文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
/** 原理:如果获取到数据表中已存在自动草稿则继续使用这个自动草稿而不再添加自动草稿 **/
// 修改前
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 );
if ( current_theme_supports( ‘post-formats’ ) && post_type_supports( $post->post_type, ‘post-formats’ ) && get_option( ‘default_post_format’ ) )
set_post_format( $post, get_option( ‘default_post_format’ ) );
}
// 修改后
if ( $create_in_db ) {
global $wpdb;
global $current_user;
$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 );
}
if ( current_theme_supports( ‘post-formats’ ) && post_type_supports( $post->post_type, ‘post-formats’ ) && get_option( ‘default_post_format’ ) )
set_post_format( $post, get_option( ‘default_post_format’ ) );
}
|
完成上面这些就差不多解决了。如果大家有更好的办法,可以在下面留言。