wordpress文章ID连续的修改方法
时间: 2017-04-20 13:49:45 浏览次数:

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

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

  1. <?php 
  2. /* 
  3. WordPress重新排列不连续的文章ID 
  4. */ 
  5.   
  6. $hostname_blog = "localhost";//服务器名称 
  7. $database_blog = "dbname";//数据库名称 
  8. $username_blog = "username";//数据库账户 
  9. $password_blog = "password";//数据库密码 
  10. $blog = mysql_pconnect($hostname_blog$username_blog$password_blog)  
  11. or trigger_error(mysql_error(),E_USER_ERROR); //打开一个到 MySQL 服务器的持久连接 
  12.   
  13. $no = 1;//初始化变量 
  14.   
  15. function change_id($id)//定义change_id()函数 
  16. global $no//全局变量 
  17. // 修改post_id,并修改分类、标签、自定义字段、评论的对应关系 
  18. $sql = 'update wp_posts set ID = ' . $no . ' where ID = ' . $id
  19. mysql_query($sql); 
  20. $sql = 'update wp_term_relationships set object_id = ' . $no . ' where object_id = ' . $id
  21. mysql_query($sql); 
  22. $sql = 'update wp_postmeta set post_id = ' . $no . ' where post_id = ' . $id
  23. mysql_query($sql); 
  24. $sql = 'update wp_comments set comment_post_ID = ' . $no . ' where comment_post_ID = ' . $id
  25. mysql_query($sql); 
  26. $no = $no + 1; 
  27.   
  28. mysql_select_db($database_blog$blog);//设置活动的 MySQL 数据库 
  29. $query_postRecord = "SELECT ID FROM wp_posts ORDER BY ID ASC"
  30. $all_postRecord = mysql_query($query_postRecord); 
  31. $row_postRecord = mysql_fetch_assoc($all_postRecord);//从结果集中取得一行作为关联数组 
  32.   
  33. do { 
  34. change_id( $row_postRecord['ID'] ); 
  35. while ($row_postRecord = mysql_fetch_assoc($all_postRecord));//不断调用change_id()函数来修改ID 
  36.   
  37. // 重新设置post id自增起点 
  38. mysql_query('alter table wp_posts AUTO_INCREMENT = ' . $no); 
  39.   
  40. echo 'ResetID Succeed'
  41.   
  42. ?> 

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

Copyright © 2012-2017 月度 版权所有