此文章介绍让Typecho文章ID连续的方法。无需改数据库,通过修改固定链接为/{slug}.html,设置Nginx伪静态,再改Edit.php文件,使新文章自动递增Slug,实现链接连续。
最近站点又恢复了,文章和评论也从旧站点导入这个站点了。WordPress的文章ID有个特点,就是ID几乎很难连续。据我所知,WordPress的ID号不仅要分配给文章,还要分配给文章草稿,分类等等,这就导致文章导入Typecho后,Typecho文章的Cid也不连续,这就很不符合强迫症的我,于是从官方GitHub库的Issues中,看到有人这样解决。
不修改文章Cid,通过修改固定链接方式,使用Slug来代替Url中Cid位置,举个例子:
第一篇文章Cid为”1”,固定链接方式设置为”个性化定义 /{cid}.html”,则Url链接为https://blog.catchyun.com/1.html
第二篇文章Cid为”11”,固定链接方式设置为”个性化定义 /{cid}.html”,则Url链接为https://blog.catchyun.com/11.html
但是如果你想让Cid为”11”的第二篇文章Url链接为https://blog.catchyun.com/2.html的话,那需要从数据库修改Cid的值,并且需要将关联的"评论"和"自定义字段"Cid也更改
下面就介绍一种不需要更改数据库的方法,通过从后台修改”Slug”值,来实现上述Url形式。(有个缺点,如果你文章很多,那需要后台一个一个改Slug,但是以后就会自动连续生成Slug,也可自定义修改)
设置永久链接格式
路径:后台 —> 设置 —> 永久链接
1.1 启用地址重写功能
1.2 更改自定义文章路径
选择WordPress风格,也可自定义为/{slug}.html,这样就不会显示”archives”字段1.3 打开Nginx设置
博主使用的是宝塔面板管理,打开 站点设置 —> 伪静态 —> 选择typecho方案
1 | if (!-e $request_filename) { |
- 1.4 返回站点后台设置保存,如果显示未设置伪静态,选择仍要更改即可。
更改博客源文件
为了使创建新文章时,自动递增Slug的值,则需将博客框架文件稍作修改。
编辑文件 {安装路径}/var/Widget/Contents/Post/Edit.php
,修改该文件的 execute()
函数,新增else分支
1 | /** |