美國vps搭建wordpress出現(xiàn)發(fā)布文章ID不是連續(xù)的
WordPress有個比較討厭的功能,就是默認情況下發(fā)布的文章ID不是連續(xù)的,使用ID做為Permalink結(jié)構(gòu)的用戶將會看到一個地址越來越混亂的WordPress,之前很多方法都是要修改WordPress代碼,導(dǎo)致一升級WordPress,修改就會失效,現(xiàn)在我給一個解決美國vps搭建WordPress的ID不連續(xù)的完美方法,即使WordPress升級,也不會導(dǎo)致該方法失效。
找到當(dāng)前主題目錄,在主題目錄下到文件functions.php,將下述代碼添加到文件里面。
這樣如果你只是單純發(fā)文章,不發(fā)頁面,不添加菜單,不上傳媒體的話,基本上此后的文章ID是連續(xù)的,而且不改變之前已經(jīng)發(fā)布的文章ID,不影響SEO。
// WordPress連續(xù)ID,禁用草稿功能函數(shù)開始
function keep_id_continuous(){
global $wpdb;
$lastID = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_status = 'publish' OR post_status = 'draft' OR post_status = 'private' OR ( post_status = 'inherit' AND post_type = 'attachment' ) ORDER BY ID DESC LIMIT 1");
$wpdb->query("DELETE FROM $wpdb->posts WHERE ( post_status = 'auto-draft' OR ( post_status = 'inherit' AND post_type = 'revision' ) ) AND ID > $lastID");
$lastID++;
$wpdb->query("ALTER TABLE $wpdb->posts AUTO_INCREMENT = $lastID");
}
// 將函數(shù)鉤在新建文章、上傳媒體和自定義菜單之前。
add_filter( 'load-post-new.php', 'keep_id_continuous' );
add_filter( 'load-media-new.php', 'keep_id_continuous' );
add_filter( 'load-nav-menus.php', 'keep_id_continuous' );
// 禁用自動保存,所以編輯長文章前請注意手動保存。
add_action( 'admin_print_scripts', create_function( '$a', "wp_deregister_script('autosave');" ) );
// 禁用修訂版本
remove_action( 'pre_post_update' , 'wp_save_post_revision' );
// WordPress連續(xù)ID,禁用草稿功能函數(shù)結(jié)束
// 使WordPress在原生編輯器(tiny)下發(fā)表文章時,不去除空格
add_filter('tiny_mce_before_init', 'preserve_nbsp_chars');
function preserve_nbsp_chars($initArray) {
$initArray['entities'] = '160,nbsp,'.$initArray['entities'];
return $initArray;
}