MENU

【教程】解决Typecho文章Cid不连续

2020 年 12 月 18 日 • 阅读: 332 • 分享

Typecho下文章编号(cid)不连续,虽然不影响什么,也无关紧要,但是对于有强迫症的人例如咸鱼我来说,是无法忍受。不过网上有大佬给出来解决办法。

食用方法:

1.复制下面代码框中的代码
2.修改数据库信息为自己的
3.保存为php文件上传到博客根目录
4.修改PHP版本<=7 推荐PHP5.6
5.访问该php链接 例:http://127.0.0.1/xxxx.php

<?php
/**
 * Typecho重新排列不连续的文章ID
 */
 
$hostname_blog = "localhost";
$database_blog = "数据库名";
$username_blog = "数据库用户名";
$password_blog = "数据库密码";
$blog = mysql_pconnect($hostname_blog, $username_blog, $password_blog) or trigger_error(mysql_error(),E_USER_ERROR); 
 
$no = 1;
 
function change_id($cid)
{
    global $no; 
 
    // 修改post cid,并修改分类、标签、自定义字段、评论的对应关系
    $sql = 'update typecho_contents set cid = ' . $no . ' where cid = ' . $cid;
    mysql_query($sql);
    $sql = 'update typecho_relationships set cid = ' . $no . ' where cid = ' . $cid;
    mysql_query($sql);
    $sql = 'update typecho_comments set cid = ' . $no . ' where cid = ' . $cid;
    mysql_query($sql);
 
    $no = $no + 1;
}
 
mysql_select_db($database_blog, $blog);
$query_postRecord = "SELECT cid FROM typecho_contents ORDER BY cid ASC";
$all_postRecord = mysql_query($query_postRecord);
$row_postRecord = mysql_fetch_assoc($all_postRecord);
 
do {
    change_id( $row_postRecord['cid'] );    
} while ($row_postRecord = mysql_fetch_assoc($all_postRecord));
 
// 重新设置post id自增起点
mysql_query('alter table typecho_contents AUTO_INCREMENT = ' . $no);
echo 'ok';
?>

提示下面信息即为成功(即存在ok)

Deprecated: mysql_pconnect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /www/wwwroot/xxxxx/xxxx.php on line 11
ok

最后编辑于: 2021 年 03 月 06 日
返回文章列表 文章二维码
本页链接的二维码
打赏二维码