wordpress文章ID连续的修改方法

作者:寇玉鑫 , 分类:技术分享 , 浏览:5362 , 评论:3 请在这里放置你的在线分享代码

      很多有强迫症的人都在拼命的找关于wordpress文章id不连续的缺点,发表文章的时候,系统会自动等时间地帮你备份。虽然出发点是好的,但是却导致了发表的文章的ID不连续。比如,前一篇文章的网站是27.html,很可能在你发表下一篇文章的时候网站会变成45.html。至此为止,博客中总共18篇文章,在我没进行重新排序之前,文章的ID已经达到了300多了。所以趁文章还不多的,赶紧采取一些措施解决下。废话少说,贴出代码(代码中已注释)。其中数据库表的前缀默认为wp_,应该根据自己的表进行修改。(温馨提示:在任何数据库的操作前,最好先备份数据库!!!)

    下面开始上代码,大家让的一定要备份,最好先在本地测试一下。

<?php
/*
WordPress重新排列不连续的文章ID
*/
 
$hostname_blog = "localhost";//服务器名称
$database_blog = "dbname";//数据库名称
$username_blog = "username";//数据库账户
$password_blog = "password";//数据库密码
$blog = mysql_pconnect($hostname_blog, $username_blog, $password_blog) 
or trigger_error(mysql_error(),E_USER_ERROR); //打开一个到 MySQL 服务器的持久连接
 
$no = 1;//初始化变量
 
function change_id($id)//定义change_id()函数
{
global $no; //全局变量
// 修改post_id,并修改分类、标签、自定义字段、评论的对应关系
$sql = 'update wp_posts set ID = ' . $no . ' where ID = ' . $id;
mysql_query($sql);
$sql = 'update wp_term_relationships set object_id = ' . $no . ' where object_id = ' . $id;
mysql_query($sql);
$sql = 'update wp_postmeta set post_id = ' . $no . ' where post_id = ' . $id;
mysql_query($sql);
$sql = 'update wp_comments set comment_post_ID = ' . $no . ' where comment_post_ID = ' . $id;
mysql_query($sql);
$no = $no + 1;
}
 
mysql_select_db($database_blog, $blog);//设置活动的 MySQL 数据库
$query_postRecord = "SELECT ID FROM wp_posts ORDER BY ID ASC";
$all_postRecord = mysql_query($query_postRecord);
$row_postRecord = mysql_fetch_assoc($all_postRecord);//从结果集中取得一行作为关联数组
 
do {
change_id( $row_postRecord['ID'] );
} while ($row_postRecord = mysql_fetch_assoc($all_postRecord));//不断调用change_id()函数来修改ID
 
// 重新设置post id自增起点
mysql_query('alter table wp_posts AUTO_INCREMENT = ' . $no);
 
echo 'ResetID Succeed';
 
?>

以上代码大家可以试试,如果哪里有不对的,可以自行调整一下。

 

发表评论

必填

选填

选填

◎欢迎参与讨论,博客大全免费收录

已有3位网友发表了看法:

1#90创业狼  2015-05-22 23:38:56 回复该评论
顶一下
2#皇家元林  2015-05-28 22:43:11 回复该评论
你这个ZBLOG,也介绍wordpress。。
2#寇玉鑫  2015-05-29 15:06:04 回复该评论
无所谓了,有用的就当笔记,记下,嘿嘿
寇玉鑫自媒体