重新排列Typecho文章cid顺序

2021-06-20 106 0


发布几篇文章后发现一个问题,例如明明才发布了3篇文章,文章的cid已经到11了,虽然对于访问来说没什么问题,但是就是看着不爽啊,如果按照1.2.3来排序不好吗?非要跳那么远!!!幸亏也算找到办法,把如下代码编辑好(数据库地址等),保存为PHP文件,上传到站点根目录,访问一次即可!

<?php
/**
 * Typecho重新排列不连续的文章ID
 * 网站:https://minirizhi.com/
 */
$hostname_blog = "https";
$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';
?>

特别提示:务必在PHP7以下版本的服务器上执行。本操作涉及数据库,请提前做好备份工作。另外,文章cid重新排列后,上传的附件所属文章可能不正确,需手动修改。

相关文章

为你的网站增加节日气息:WordPress节日装扮美化插件
网站添加新春炫彩灯笼美化修改版代码
WordPress删除文章时自动删除文章内图片文件
教程:WordPress点击鼠标出现彩色爱心特效
功能强大的网站主动推送至百度小工具
WordPress显示‘正在执行例行维护,请一分钟后回来’怎么解决

发布评论