用過WordPress的用戶,會發現WordPress有個比較討厭的功能,就是默認情況下發布的文章 ID不是連續的,使用 ID 做為 Permalink 結構的用戶將會看到一個地址越來越混亂的 WordPress,之前很多方法都是要修改 WordPress 代碼,導致一升級 WordPress,修改就會失效,現在武林網給一個解決 WordPress 的 ID 不連續的完美方法,即使 WordPress 升級,也不會導致該方法失效。
WordPress文章ID不連續的解決方法:
找到當前主題目錄,在主題目錄下到文件 functions.php,將下述代碼添加到文件里面。
這樣如果你只是單純發文章,不發頁面,不添加菜單,不上傳媒體的話,基本上此后的文章 ID 是連續的,而且不改變之前已經發布的文章 ID,不影響 SEO。
代碼如下:
// WordPress 連續 ID,禁用草稿功能函數開始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");}// 將函數鉤在新建文章、上傳媒體和自定義菜單之前。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 連續 ID,禁用草稿功能函數結束// 使 WordPress 在原生編輯器(tiny)下發表文章時,不去除空格add_filter('tiny_mce_before_init', 'preserve_nbsp_chars');function preserve_nbsp_chars($initArray) {$initArray['entities'] = '160,nbsp,'.$initArray['entities'];return $initArray;}以上就是WordPress文章ID不連續的解決方法的全部內容,希望對大家的學習和解決疑問有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答
圖片精選