首页   微言心语  Plan-Theme 2.5 —为中文个人博客做的扁平响应式主题

Plan-Theme 2.5 —为中文个人博客做的扁平响应式主题

关于这套主题

Plan-Theme 是我自己在用的一套扁平化响应式 wordpress 主题,从第一版到现在三年多了。这次做了一轮彻底整理,把安全、性能、排版和视觉系统重新梳理了一遍,顺便把「能跑」和「可维护」之间的差距补齐了。写成 2.5 版本。

其实,这几年因为工作、生活、家庭包括年龄等各方面的原因,博客的更新其实很少了,也不像刚才开始那样喜欢折腾。更何况,我对于wordpress纯粹是因为个人兴趣,对于主题模板这块,一直没有系统的学习,自己摸索着搞,但最近两年由于AI的兴起,我也是借助AI完善了这个主题。

它的定位很明确:中文个人博客。不追求大而全,不做营销落地页那套花哨动效,把阅读体验和后台日常写作的顺手放在第一位。下面按样式和功能两条线介绍。

一、视觉与样式

1. 配色:一套可整体替换的令牌体系

全站颜色没有一个写死的。所有色值来自 :root 里的一组变量,亮暗变体用 color-mix() 从主色自动派生——也就是说,改一行主色,全站按钮、链接、标签、焦点环、高亮淡底会一起跟着变,不需要满文件找色值。

基础色板是克制路线:

  • 主色 #2b7cd3,一个偏沉稳的深藏青,不做高饱和亮蓝
  • 文字三级灰 #333 / #666 / #999,分别对应正文、次要信息、时间戳与辅助说明
  • 背景 #f5f5f5 浅灰底 + 白色卡片,靠色差分层而不是靠边框
  • 边框三档:发丝线 #f0f0f0、细线 #eee、常规 #e0e0e0

这套配色的思路是「界面退后,内容在前」——页面里唯一的色彩应该来自文章缩略图和代码块,而不是界面本身。

2. 深色模式

不是简单反色,而是一整套独立令牌。默认跟随系统偏好,头部有个月亮/太阳按钮可以手动切换,选择记在浏览器里,下次访问保持。

几个容易踩的坑这次都处理了:

  • 页脚有独立的一组颜色变量,不会因为「拿文字色当背景色」而在暗色下整块反色
  • 彩色底上的白字用恒定不变的 --text-inverted,不随主题翻成深色
  • 代码高亮块单独配了一组暗色令牌,不会出现暗色页面上挂着刺眼白框
  • 初始化脚本放在 <head> 里执行,深色用户不会先闪一下白屏

3. 排版

中文博客的排版有自己的规律,硬套西文那套(比如负字距)只会让汉字挤成一团。这里的处理是:

  • 正文 15px / 行高 1.8,文章正文行高放宽到 2.0,长文读下来不累
  • 字阶按 1.25 比率递进:12 / 13.5 / 15 / 17 / 20 / 22 / 26,标题靠字号与字重建立层级,不靠颜色
  • 摘要与正文首行缩进两字符(这是中文习惯,写成了样式而不是内联在模板里)
  • 正文里的列表项目符号、引用块、表格、图片对齐与图注都有独立样式
  • 字体栈优先 PingFang SC / 微软雅黑,等宽数字用于日期与统计,避免位数变化时抖动

4. 圆角、阴影与动效

圆角只用 2px 和 4px 两档,保持扁平主题的利落感,不做药丸卡片。阴影分两级:静态时几乎察觉不到的浅影,列表卡片悬停时加深并上浮 2px——这个反馈只给列表里的小卡片,文章页和归档页的整块正文卡片不会跟着鼠标忽明忽暗抢注意力。

动效整体克制,全部走统一的缓动变量,并且尊重系统的「减少动态效果」设置:开启后所有过渡与卡片位移自动降级。另外补了打印样式,打印或存 PDF 文章时不会把页头页脚侧边栏一起带上。

5. 响应式

四档断点:1200 / 992 / 768 / 480。桌面是「正文 + 300px 侧边栏」两栏,平板宽度侧边栏降到 264px 并取消吸附,再窄则侧边栏落到内容下方。移动端导航收进汉堡菜单,二级菜单改为点击展开。

6. 零第三方资源依赖

这一点对国内站点比较实际:主题不加载任何外部 CDN。jQuery 用 WordPress 自带的,图标是主题自带的 iconfont(26 个,全部在用,没有引入 Font Awesome 那种上百 KB 的图标库),灯箱、代码高亮、分享组件全部本地化,连又拍云联盟的标识图都存在主题里。除了头像走 Gravatar 国内镜像,前台不会有任何跨境请求。

二、功能一览

内容展示

  • 5 种文章格式:标准、图像、相册、摘要、视频,各有独立模板与排版
  • 首页轮播:在文章编辑页勾选「加入首页轮播」即可,纯手写轮播(自动播放、悬停暂停、指示器),不依赖任何滑块插件
  • 缩略图三级回退:特色图 → 正文第一张图 → 主题默认图,服务端按显示尺寸裁剪;无图文章的默认封面按文章 ID 稳定分配,刷新不会换图
  • 代码高亮:自绘工具条 + 语言标签 + 一键复制 + 行号,支持 PHP / JS / CSS / HTML / Java / Python,只在文章和页面加载
  • 图片灯箱:正文与相册图片点击放大,支持键盘操作
  • 面包屑导航、阅读量统计、点赞、文末同分类相关推荐、404 页(含搜索与最新文章)

评论与分享

  • AJAX 无刷新评论:提交不跳转,支持三层嵌套回复
  • 评论者身份自动标注:博主 / 文章作者 / 注册会员 / 游客,四种底色区分
  • 分享弹窗:微博、QQ、微信(带二维码)、豆瓣、QQ空间、LinkedIn 等十余个平台,二维码本地生成

编辑器增强

文本模式的快捷按钮条,一键插入常用结构,不用记 HTML:

  • 段落缩进、二级/三级/四级标题、分割线、分页符
  • 代码块(自动套上高亮结构)、文件下载按钮、展开收缩模块、题外话提示框
  • 折叠面板同时提供短代码
    标题
    内容

页面模板

新建页面时在「模板」里选即可:

  • 文章归档页——时间轴形式,按年/月分组,可折叠,带年份跳转(下面单独说)。文章归档页
  • 友情链接页——读取 WordPress 链接管理器。友情链接演示
  • 标签云页——全标签概览。标签归档
  • 站点地图页——不依赖插件的 HTML 站点地图。网站地图html页面
  • 外链跳转中间页——下面单独说。

站点功能

  • 页头弹窗搜索 + 搜索结果关键词高亮 + 无结果引导
  • 注册/登录入口,按后台「是否允许注册」开关自动显隐;已登录显示头像与昵称
  • 深色模式切换按钮
  • 4 个自定义小工具:缩略图文章列表(最新/随机/相关/热门四种模式,尺寸可调)、自定义标签云、指定分类文章列表、作者信息卡
  • 3 个侧边栏位置:通用、主页专属、文章页专属,可按页面类型放不同内容
  • 底部导航菜单位、版权行 ICP 备案号与公安备案号(自定义器填写)

后台与运维

  • 主题设置:一个通用「统计代码」输入框,粘贴任意平台(百度统计 / GA / 51LA / CNZZ 等)的完整代码,原样输出到页脚,留空则零输出
  • 数据库清理面板:一键清理修订版、草稿、待审与垃圾评论、无效 meta,显示各表体积并可优化数据表,所有操作带安全校验
  • 后台文章列表增加「阅读量」列
  • 内置性能与安全优化:禁用 XML-RPC、清理 head 冗余输出、图片懒加载、限制修订版本数、关闭 emoji 外链脚本、屏蔽若干境外慢请求
  • 自建更新源:后台「外观 → 主题」可直接看到新版本并一键升级,不需要走 WordPress.org

三、几个值得单独说的

归档时间轴

这次重做的部分。文章按年份分组,年份用胶囊条可以快速跳转;每年下面按月折叠,默认展开最新一个月,既不会一屏塞满,也不至于整页空荡。

视觉上是一条贯穿的轨道,文章前的圆点严格落在轨道中心线上——这个对齐是用两个变量推导出来的(每层的缩进量和轨道位置),不是手调像素,所以改缩进不会跑偏。月份展开时那个加号会旋转成叉号,它是两根短条画出来的,不是文字符号,因此旋转永远绕圆心。

外链跳转页

友情链接或站内跳外站时,可以先经过一个中间页:显示目标地址、安全提示、该链接被访问的次数,5 秒倒计时后自动跳转,也可以直接点继续或返回。地址用 base64 编码放在路径里,形如 /go/ 加上一串编码后的字符,例如 /go/aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20。

本站内部链接会被识别并直接跳转,不显示中间页。跳转页带 noindex,不会被搜索引擎收录。

缩略图的三级回退

没有设置特色图时会自动取正文第一张图,再没有就用主题内置的默认封面。默认封面按文章 ID 哈希固定分配,不会出现同一个位置每次刷新换一张图的情况——那不但观感差,裁剪函数还会为每张新组合反复生成文件。

代码高亮的写法

在文本编辑器里直接用带语言标记的 code 标签(不需要套 pre,主题会自动生成带工具条的高亮容器),语言标记支持 php / javascript / css / html / java / python:

css
/* 在 style.css 里只改这一行,全站主色跟着变 */
:root {
    --primary-color: #2b7cd3;
}

四、后台配置速查

想做的事 位置
上传站点 Logo 外观 → 自定义 → 站点图标(不设置则用主题内置图)
主导航 / 底部导航 外观 → 菜单,分配到对应位置
侧边栏内容 外观 → 小工具(通用 / 主页 / 文章页三个位置)
首页轮播文章 文章编辑页右侧「首页轮播设置」勾选
备案号 外观 → 自定义 → 底部设置
统计代码 外观 → 主题设置
友情链接 后台「链接」菜单(主题已自动启用该功能)
归档页 / 友链页 / 标签云页 / 站点地图 新建页面,在「模板」下拉中选择对应模板
数据库清理 外观 → 数据库清理

五、环境要求

  • WordPress 5.8 及以上
  • PHP 7.4 及以上(已确认代码不含 PHP 8 专属函数)
  • 需要开启 GD 图像库(缩略图裁剪与代码高亮的部分功能依赖)

六、几个已知取舍

说明清楚,免得有人觉得是 bug:

  • 默认使用经典编辑器,块编辑器是关闭的。这套主题的编辑增强(快捷按钮、代码块、折叠模块)都是围绕经典编辑器做的。需要 Gutenberg 的话自行改回。
  • 评论默认自动通过审核(AJAX 提交路径)。个人博客垃圾评论不多,配和善的小工具足够;如果收到大量 spam,请到「设置 → 讨论」打开评论审核。
  • 评论区「博主」标签对应的是用户 ID 为 1 的账号。如果你的管理员账号不是 1,那个标签会标错人,需要改一处代码。
  • 头像走 Gravatar 国内镜像。如果你更希望完全本地化,可以配合本地头像插件。

最后

这套主题不打算做成大而全的通用主题,它服务的就是「一个人写点东西」这个场景:打开后台能写、写完排版不丑、手机上读着舒服、跑起来不靠一堆插件和外部 CDN。这次整理完,至少我自己敢继续往下改了。

如果你也在用,升级前记得看一眼上面「已知取舍」和后台配置那两节。有问题评论区说。

相关推荐

发表回复

邮箱地址不会被公开。