• 欢迎访问爱玩吧
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏爱玩吧

【php】完美解决WordPress博客程序文章ID不连续的问题

建站资源 aiwanyule 8年前 (2016-05-11) 已收录

【php】完美解决WordPress博客程序文章ID不连续的问题

搭建好WordPress后才发现,WordPress的文章id是不连续的。作为一个重度强迫症患者的我,去百度找了很多解决方法,可还是并没有什么卵用。最后我心灰意冷,决定自己研究WordPress源码去解决这个问题。在我一番努力之后,成功的完美解决了WordPress4.3.1文章ID不连续的问题,在此特地分享给大家,请大家不要太崇拜我……

要想使文章的ID连续,除了下述的操作之外,还需要注意:要避免媒体、页面和其它文章类型占用文章ID。就我个人而言,我只用WordPress写文章,并不会用到媒体、页面等其他占用文章ID的东西,因此,如果你真的确定要想使文章ID连续,就必须得丢弃媒体、页面等其他占用文章ID的功能。

废话就说到这里,接下来我介绍如何操作:

一、禁用文章修订版、历史版本、自动保存

wp-config.php
文件中添加:

define(‘WP_POST_REVISIONS’, false);
//禁用文章修订版,文章历史版本

functions.php
(主题文件)中添加:

add_action( ‘admin_print_scripts’, create_function( ‘$a’, “wp_deregister_script(‘autosave’);” ) );
//禁用自动保存

二、改变WordPress创建新数据的条件(独家提供,最关键的一步)

/wp-admin/includes/post.php,在597行左右:

$post_id = wp_insert_post( array( ‘post_title’ => __( ‘Auto Draft’ ), ‘post_type’ => $post_type, ‘post_status’ => ‘auto-draft’ );
替换为:
$post_id= post_exists(“自动草稿”)?post_exists(“自动草稿”):wp_insert_post( array( ‘post_title’ => __( ‘Auto Draft’ ), ‘post_type’ => $post_type, ‘post_status’ => ‘auto-draft’ ) );
//改变WordPress创建新数据的条件,如果存在自动草稿的空数据,新文章id就是自动草稿的id,否则的话创建新数据(独家)

三、将id为2的页面转换为文章(附加赠品)

a.把posts表中ID为2的post_type字段设置为post
b.postmeta表meta_key字段为_wp_page_template的post_id设置为0
(少了这步上下篇文章时会跳过id为2的文章)

WordPress完美解决文章ID不连续问题:点击浏览


爱玩吧 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:【php】完美解决WordPress博客程序文章ID不连续的问题
喜欢 (0)