惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recent Announcements
Recent Announcements
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
B
Blog
T
The Blog of Author Tim Ferriss
J
Java Code Geeks
腾讯CDC
D
Docker
G
Google Developers Blog
D
DataBreaches.Net
雷峰网
雷峰网
Blog — PlanetScale
Blog — PlanetScale
S
SegmentFault 最新的问题
The Cloudflare Blog
有赞技术团队
有赞技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Stack Overflow Blog
Stack Overflow Blog
大猫的无限游戏
大猫的无限游戏
量子位
美团技术团队
aimingoo的专栏
aimingoo的专栏
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Engineering at Meta
Engineering at Meta
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

枫林灯语

当苍蝇尝试在蛋上钻缝:又谈站点垃圾广告 - 枫林灯语 无用命途:自制三天王 - 枫林灯语 小论博客的更新速度 - 枫林灯语 和校园网斗智斗勇的日子(第九辑) - 枫林灯语 开学前,文具店小景 - 枫林灯语 生活碎碎念:升学首日有感 - 枫林灯语 中元节随笔 - 枫林灯语 业余频段的对讲机,不能再商业应用了 - 枫林灯语 无用命途:动态海景灯,用电脑说脏话 - 枫林灯语 冷知识:博客的评论区不是广告区 - 枫林灯语 今日站点异常流量的分析 - 枫林灯语 MURS:少见的 VHF 对讲机 - 枫林灯语 生活碎碎念:立秋,立马就『秋』? - 枫林灯语 我为小说忙:(五)插件的上线工作 - 枫林灯语 无用命途:博客深潜者 - 枫林灯语 台风来临,如何准备好应急通信对讲机 - 枫林灯语 我为小说忙:(四)插件(写入部分) - 枫林灯语 无用命途:布谷鸟叫(可选屏蔽) - 枫林灯语 我为小说忙:(三)插件(读取部分) - 枫林灯语 我为小说忙:(二)插件的几个前端页面 - 枫林灯语 无用命途:只有 32v 的家用电? - 枫林灯语 好像...是放暑假了吧? - 枫林灯语 我为小说忙:(一)TPNovel 的规划 - 枫林灯语 无用命途:酒精,酒精膏? - 枫林灯语 JustWrite:只要写,就行了 - 枫林灯语 每日牢骚:便宜宾馆历险记 - 枫林灯语 生活碎碎念:镜花水月里的 Cosplay(续) - 枫林灯语 Typecho 内置的反垃圾评论功能,尚能饭否? - 枫林灯语 分析 Nginx 访问日志,在里面挖点宝 - 枫林灯语 生活碎碎念:镜花水月里的 Cosplay - 枫林灯语
博客装修记:专题页导航 - 枫林灯语
墨枫梧桐 · 2026-06-15 · via 枫林灯语

博客装修记:专题页导航

分类:编程 字数:2744 阅读:0

细心的朋友可能会发现,博客顶部(手机端就是点开菜单)的导航栏里,原来『公众对讲机』的位置,现在变成了『专题页导航』。点进去就是一个简单的目录,汇总了本站的一些专题页,或按照Typecho的称呼,『独立页面』。

要说,换一条链接而已,怎么还能开一篇文章来水?其实主要还是想聊聊这背后的原因,以及在此过程中发现的,站点所使用的主题的一个小特性。

如图所示如图所示

1. 前言

从明面上看,这次的改版并不难,就是写好导航页之后,在后台编辑一下,把顶上的链接换一下罢了。可以说是不费吹灰之力,易过借火,也不是什么上刀山下火海的难事。甚至,现在AI这么发达,这种零散的事情都可以交给AI代劳了。为什么还要写出来呢?

没错,笔者也是这样想的。所以这篇博文不是『如何添加专题页』的教程,有需要的朋友可以自行查阅相关资料。相对地,我更想聊聊为什么添加,以及针对目前站点所使用的主题的一些Corner Case问题进行修复。

2. 为何改版?

事出必有因,改版亦然。

2.1 原生态体验

Typecho内部内置两种页面类型,文章独立页面。

一般平时写博客,就是用文章。写完之后自动出现在主页,RSS也发出去了,而且按时间顺序排好,最新的就排在最前面,同时计入归档页,分类页等地方。这种大全套模式,当然是适合用来发布不断更新的博文的,读者点进来就能看到最新动态。

然而,很显然地,这就意味着,在文章类别下发布的东西,会引发一连串的反应。比如我想总结某个以前聊过的话题(或者说,足以成为一个概念的东西,比如笔者的杏泉网络),此时如果放在文章类别下,就会被推到首页,订阅RSS的读者也可能会因收到『以前好像发过啊』的内容而感到疑惑。另外,部分第三方插件可能针对文章有特殊处理,例如说在新文章发送后自动推送到别的地方,这就容易带来不必要的问题。

另一方面,独立页面,就显得更加『原生态』。这里的原生态可以理解为英语里的Raw,或者Base那种,也就是没有任何修饰,只是一个基底:撰写完成之后,就是一个带评论区的页面而已,不进入RSS,也不会主动在什么地方展示,你得主动把链接放出来,才能被人访问到。比如上面的场景,我可以把这些概念上的东西,单独开一个独立页面,写完之后手动放到合适的地方,不会造成其他影响。另外,Typecho的独立页面功能是可以自己写模板的,在某些需要更高定制化的场景,就显得更加适合。例如本站的文章归档页,就是这种方式做的:后台开一个独立页面,模板设置为归档页,就完事了。

2.2 分散的汇总

上面提到的场景是『总结某个话题』,这里继续用这个举例子。

比如,笔者的杏泉网络,是分几篇博文介绍了如何搭建各个服务,并实际使用的。现在,如果我想在未来的其他文章里放个链接来跟人说明这个网络是什么,我应该把链接指向哪篇文章呢?如果指向第一篇,那么读者看不到后续更新;如果指向最新的文章,那么后续再发布和杏泉网络有关的博文的时候,就要回来手动修改链接。更何况,有些情况下,比如分享到社交媒体,此时链接连改都改不了,发出去就是定局。

此时,就可以单独开一个专题页,把零碎的概念都聚合起来。以后要引用就引用这个,有更新也只更新这个,这就大大减少了工作量。

2.3 有生之年的小说

上面提到独立页面比较原生态,这样的特性,就很适合用来放一些『主线之外』的东西。

比如,我现在就可以往独立页面里面放入目前正在写的小说(而且也计划如此),一次性放几章,十几章,几千几万章,都没有关系。因为独立页面的原生态特性,普通的读者不会受到影响,RSS订阅也不会被小说给灌满。同时,还可以选择用各种别的方法,来在此基础上进行修饰,比如小说页就添加一些辅助阅读的小工具,从而有针对性地形成不一样的风格。这都是文章页很难做到的,毕竟做加法一般都会比做减法更加容易。

3. 对主题的修改

添加专题页并不难,只需要新建一个页面,然后填入你要发布的内容就好了。顶多再和笔者一样,再加一个专题导航页,用来汇总信息,方便查阅。

然而,在本站使用的主题文件里,有这么一段代码:

<?php $this->widget('Widget_Contents_Page_List')->to($pages); ?>
<?php while($pages->next()): ?>
    <!-- 输出信息,略去 -->
<?php endwhile; ?>

很显然,这段代码会把站点上的所有独立页面,都在顶部导航栏展示出来。此时如果多添加几个页面,导航栏也就被塞满了,甚至会直接溢出外层元素,这显然不是我们想要的结果。

要关闭这个功能,最省事的办法,当然就是直接把这段代码删了。不过当时因为不确定日后是否仍需要这个功能,因此笔者没有选择直接删除,而是把代码用一个if块给包裹了起来:

<?php
    $autoPageList = false;
    if($autoPageList):
        $this->widget('Widget_Contents_Page_List')->to($pages);
?>
<?php while($pages->next()): ?>
    <!-- 输出信息,略去 -->
<?php endwhile; ?>
<?php endif; ?>

这样,如果以后想要快速恢复到原来的样子,只需要把参数改为true即可,不必再费力补充代码。

4. 写在最后

适当水文,有益身心健康。

同时当然也欢迎来看看新的导航页,新的杏泉网络主题页(内含笔者的小说的一些信息),以及新的关于页。

(完)