WordPress去除文章修订自动保存自动草稿

wordpress
想必很多人都会遇到发布文章后 ID 不连续的问题,比如有的时候上一篇文章是1,下一边直接到28了甚至更大。对于我这样以 %post_id%.html 为 URL 后缀的人,多少会有点 ID 洁癖。经过搜索和实验,发现了比较简单的方法,解决了这个问题,并记录如下。
造成发布文章后 ID 不连续的原因有三个:文章修订(Post Revisions)、自动保存(Auto-Save)、自动草稿(Auto-Draft)。
去除文章修订和自动保存功能
打开网站根目录下的 wp-config.php 文件,在 if ( !defined(‘ABSPATH’) ) 下面添加如下代码:

/** 关闭WordPress日志修订功能 */
define('WP_POST_REVISIONS', false);
/** 关闭WordPress自动保存功能 */
define('AUTOSAVE_INTERVAL', false);

去除自动草稿功能
查找网站根目录/wp-admin/includes/post.php中的第468行开始,代码如下:

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' ) );
} else {

替换为

	if ( $create_in_db ) {
		// Get current user infomation
		global $current_user;
		// Get a earliest auto-draft
		$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' ) );
	} else {

经过亲身体验,完美解决发布文章后 ID 不连续的问题。

版权声明:
作者:admin
链接:https://www.bttme.com/archives/1056.html
来源:bttme
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>