关于这套主题
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:
/* 在 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。这次整理完,至少我自己敢继续往下改了。
如果你也在用,升级前记得看一眼上面「已知取舍」和后台配置那两节。有问题评论区说。
