Ming000 发表于 2023-11-14 11:14

Typecho的文章cid自增问题

可以直接看最后一句,上面基本都是废话
typecho发布文章时候,文章的cid会根据顺序生成,但是发现一个问题,它的cid不是连续的,例如上一篇文章的cid是1,下一篇文章的cid可能是3,而不是2,删除cid=3的文章后,再发一篇文章,新文章cid就是4以后的了,而cid 3这个就空了出来
想问问大佬有没有办法解决这个cid自增的问题,每次修改删除后它不会重置自增值,现在有个办法解决了cid不连续的问题,但是每次都需要访问一下这个文件才会重新排序,但这又出现一个问题,如果哪天有一篇cid 6的文章因为吗某些原因被删除了,而这个时候又重新进行cid排序,那么其他平台转载的文章放置的外链就会失效或者跳转到其他文章内容了,例如:删除cid 6的文章,进行cid排序后,原先转载的cid 10的文章,这个时候cid就会变为9,而转载文章的外链还是10,那么就无法从其他平台访问到这个文章的真实地址

想要的效果:发布文章时,根据文章cid的顺序进行往下+1排列,修改文章cid不变,删除文章后再发新文章,新文章的cid要连续,还是+1的形式,而不是删除的文章cid值还存在,新文章在删除的cid值+1

oygs 发表于 2023-11-14 12:37

干脆自定义好了

cpnorg 发表于 2023-11-14 13:21

要什么cid,数字多难记啊,直接自定义英文或汉字啊兄弟

Ming000 发表于 2023-11-14 14:44

oygs 发表于 2023-11-14 12:37
干脆自定义好了

自定义还得修改,发帖的时候不能直接改啊

Ming000 发表于 2023-11-14 14:45

cpnorg 发表于 2023-11-14 13:21
要什么cid,数字多难记啊,直接自定义英文或汉字啊兄弟

文章多的情况下,我会在用什么英文或汉字纠结{:301_979:}

hanloth 发表于 2023-11-14 14:56

typecho的cid本身是连续的,但是附件的上传也会导致cid自增,只要你不使用typecho自带的附件上传,将附件传到图床之类的地方,cid就可以是连续的,像我的博客最近发的几篇都没有添加附件,cid就是连续的

tanglikecuan 发表于 2023-11-14 15:04

要解决这个问题,可以考虑使用自定义的 URL 结构来代替依赖 cid 的链接。通过在 URL 中包含文章的时间戳、标题或其他唯一标识符,可以确保即使在修改或删除文章后,其他平台转载的文章也不会出现链接失效或跳转到其他文章内容的情况。

具体实现方法如下:

自定义 URL 结构:在 Typecho 的配置文件中,可以自定义文章的 URL 结构。例如,可以将文章的 URL 设置为 "/year/month/day/title.html" 的形式,其中包含文章发布的年、月、日和标题作为路径组成部分。
使用插件或自定义代码:为了在删除文章后自动重新排序文章,可以使用插件或自定义代码来实现。通过监听文章删除和发布事件,可以更新其他文章的 URL 结构,以确保它们仍然有效。
更新转载文章的链接:如果其他平台转载的文章中包含链接到 Typecho 文章的 cid,需要更新链接以匹配新的 URL 结构。可以使用自动化工具或手动更新链接,确保它们指向正确的文章。
通过以上方法,可以解决 cid 不连续的问题,并确保即使在修改或删除文章后,其他平台转载的文章中的链接仍然有效。

qytang 发表于 2023-11-14 15:33

记得有个脚本改数据库实现的,网上搜一下就找到了应该

Ming000 发表于 2023-11-14 17:26

qytang 发表于 2023-11-14 15:33
记得有个脚本改数据库实现的,网上搜一下就找到了应该

网上找了不少,没找到,就找到了解决cid不连续的问题,但还是没办法解决cid自增值不重置的问题

Ming000 发表于 2023-11-14 17:27

hanloth 发表于 2023-11-14 14:56
typecho的cid本身是连续的,但是附件的上传也会导致cid自增,只要你不使用typecho自带的附件上传,将附件传 ...

我也不上传附件,但是修改或删除,cid就会自增,再发布新的文章,cid自增不会重置
页: [1] 2
查看完整版本: Typecho的文章cid自增问题