首页 > 创意美图 > WordPress id不连续问题
2012
12-08

WordPress id不连续问题

1.轻量级小插件禁用历史版本和自动保存(加在wp-config.php或functions.php中也无妨,但推荐加在一个小插件中)

/*
Plugin Name: Disable Revisions and Autosave
Plugin URI: 
Description: Disable the Revisions and Autosave functions.
*/
                                                                                                       
define('WP_POST_REVISIONS', false);
                                                                                                       
function disable_autosave() {
wp_deregister_script('autosave');
}
add_action('wp_print_scripts', 'disable_autosave');

2.修改wp-admin\includes\post.php转换为可见自动草稿(或只生成一篇自动草稿):

'post_status' => 'auto-draft'

'post_status' => 'draft'

即转化为可见草稿,这样修改的范围小一点,但每次都得去坛子里看看有没有草稿编辑,嫌麻烦。还有另一种省事的方法(推荐),即获取最早一条自动草稿id作为当前文章id使用。

if ( $  create_in_db ) {
    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' ) );
} else {

3.删除这个计划任务wp-admin/post-new.php

// Schedule auto-draft cleanup
//if ( ! wp_next_scheduled( 'wp_scheduled_auto_draft_delete' ) )
//  wp_schedule_event( time(), 'daily', 'wp_scheduled_auto_draft_delete' );

4.另外,附件、自定义菜单等也占用id哦。鱼和熊掌不能兼得,个人建议不要使用id作为链接元素。

以上代码在WordPress 3.4.2中测试通过,有id洁癖症的试试吧。

备注:转载请注明来自静湖一筑