今天花了一下午折腾博客,把首页翻新了一遍。
改的东西不多,就三样:去掉那个巨大的欢迎横幅、加了个侧栏、修了修分类。但每一样都比预想中折腾。
写下来记录一下,也许对你有用。
1. 你首页那个大 Banner,真的有人看吗?
我之前的博客首页长什么样呢?
顶部是一个深色背景的大横幅,写着”Linux爱好者”,下面挂着几个分类链接,还有一个向下滚动的箭头。
这东西学名叫 Hero。
听起来很酷对吧?但它占了 640 像素的高度。
也就是说,每次我打开自己博客,第一眼看到的不是文章,而是一堵深色的墙。得滚一屏,才能看到内容。
我一直觉得哪里不对,但一直没动。
直到今天。
我把它拿掉了。
不是什么高深的操作,就是把生成这个横幅的代码,在博客首页上偷偷跳过去。保留了它原来的位置结构,但内容清空、背景去掉——只留了一个几十像素的透明间隔。
这样导航栏和文章列表之间不会贴在一起,但那个占了大半屏的深色横幅,消失了。
世界清静了。
2. 文章列表:从”白板上的几行字”到”一张张卡片”
原来的文章列表长这样:白底、灰色分割线、一行接一行。
说不上难看,但总觉得缺少”呼吸感”——每个条目之间就一条细细的线,多看几眼就腻了。
我给每个条目加了一层浅灰背景、8像素圆角、和 12 像素的间距。
效果一下子不一样了。每个条目像一张张小卡片,整整齐齐排在那里。鼠标划过去的时候,背景还会微微变深,带一点阴影——算是给读者一点点”手感反馈”。
这中间有个小坑值得一提。
我的主题用了 Bootstrap 的栅格系统,每个文章卡片被包在一个 <div class="col-12"> 里。我想用 CSS 的 nth-child(odd/even) 来给奇偶条目交替背景色——结果发现全部命中了 odd,一个 even 都没有。
想了一会儿才反应过来:每个 <article> 都是它父容器的唯一子元素。从父容器的角度看,每个子元素都是 nth-child(1),当然是奇数。
最后改成从父容器那一层数奇偶才解决(不过后来觉得统一色更好看,也没用上)。
这种问题,不自己踩一遍,看文档永远想不到。
3. 侧栏:WordPress 给了我一个空房间
主题其实自带侧栏系统,对应的 Widget 区域叫 sidebar-6。
但它一直是空的。
WordPress 的 is_active_sidebar() 返回 false,于是整个侧栏干脆不渲染——连个空壳都没有。
我注册了三个 Widget:分类目录、文章归档、最新文章。
装上去之后,侧栏是出现了,但分类只显示了两个。
我有 9 个分类啊。
查了一下数据库,发现 wp_term_taxonomy 表里的 count 字段全都不对。OS 内核分类实际有 79 篇文章,数据库里写的是 0。
原因很简单:这些文章是之前通过脚本批量导入的,导入时没有更新分类的计数缓存。WordPress 以为它们是空的,所以小工具就没显示。
跑了一个 SQL 修正了计数。
但故事还没完。
分类在侧栏正确显示了,可点进去——跳到了首页。
看 URL:/category/os%e5%86%85%e6%a0%b8/
懂了。分类别名是 URL 编码的中文,WordPress 的 URL 路由不认识这玩意儿。
把几个中文分类的 slug 改成英文就好了:os-kernel、memory-basics、semiconductor……
点一下,正常了。
改完 slug 记得刷新 rewrite 规则,不然 404。
4. 还有两个顺手改的
把博客设为了首页。
之前首页是一个独立的”桌面宠物”介绍页,博客放在 /blog/ 子路径。既然没人看那个介绍页,不如直接把文章列表放首页。访客少点一次点击。
打开了所有文章的评论。
查了一下数据库,161 篇文章里,只有 5 篇评论是开启的。
剩下 156 篇全部 comment_status = closed。
同样是批量导入脚本造的孽。
全打开了。虽然我知道技术博客大概率没人留言(笑),但关着总归不对。
最后说两句
今天改的这些,没有一个是”功能性的”——没有新插件、没有新功能、没有什么惊天动地的架构升级。
但恰恰是这些东西,决定了你每天打开自己博客时的感受。
我之前不太在意这些。”能用就行”嘛。
但今天改完之后,我刷新了一下首页,看到那些整整齐齐的卡片、侧栏里分类清清楚楚、归档按年月排好——
说不上来,就是舒服了不少。
大概这就是所谓的”打磨”吧。
评论