本次版本新增 5 个功能模块:独立的搜索结果页、评论者地域分布、站点数据看板、命令面板(⌘K / Ctrl+K)、内链悬浮预览卡。
新功能
-
独立搜索结果页(
search.php):此前搜索结果由首页模板兜底,只在列表上方加一行「搜索内容:」。现在改为独立结果页:- 页头卡展示关键词与命中总数,并内置一个二次搜索框;
- 结果按类型分组展示 —— 文章(可分页)、说说、系列。说说是独立文章类型且默认不进 WordPress 搜索,现由主题单独查询后作为独立分组补上;
- 标题与摘要中的关键词高亮,摘要窗口以首个命中词为中心截取,而不是永远从正文开头截;
- 零结果时给出兜底出口:随机漫步、热门标签、回到首页;
- 后台可一键关闭增强模式,回落到原来的经典列表样式。
- 配置位置:
主题选项 → 全站配置 → 搜索结果页。
-
评论者地域分布短码
comment_geo:把已通过审核的评论按 IP 归属地聚合,输出「省份榜」「国家 / 地区榜」(可选「城市榜」)与三张总览卡(覆盖省份数 / 覆盖国家地区数 / 已定位评论数)。- 归属地解析走主题已内置的 ip2region 离线库,不请求任何外部 API;
- 先按 IP 分组再对唯一 IP 逐个解析(而不是逐条评论解析),结果整体缓存,新评论通过审核时自动失效重算;
- 参与统计的唯一 IP 数量与缓存时长均可配置,便于大站控制重算成本。
- 配置位置:
主题选项 → 评论配置 → 评论地域分布。
-
站点数据看板(
site_dashboard+ 「站点数据看板」页面模板):一页看完这个博客长成了什么样子。- 总览卡:已运行天数 / 文章总数 / 累计字数 / 评论总数 / 说说条数 / 平均更新间隔;
- 近 N 天发布节奏柱状图(纯 CSS,不引入任何图表库);
- 年度产出、分类占比、最勤评论者三张榜单;
- 底部可内嵌评论者地域分布;
- 建站天数取自「年度回顾 → 建站日期」,没填时自动回落到最早一篇文章的发布时间;
- 数据层全部复用既有模块(归档统计 / 评论排行 / 阅读增强 / 地域分布),不重复实现统计逻辑。
- 配置位置:
主题选项 → 数据看板。
-
命令面板(⌘K / Ctrl+K):一个入口聚合站内高频动作。
- 快捷键按访客的操作系统自动适配:macOS 显示并响应
⌘K,Windows / Linux 显示并响应Ctrl+K;非输入状态下按/也可唤出; - 输入即增量搜索文章(带去抖),回车可直接跳到完整搜索结果页;
- 页面跳转:特色页按「页面实际使用的模板」动态发现(用固定的中文名与图标),其余普通页面按菜单顺序列出(条数可配)—— 你没建的页面不会出现在列表里,不会点出 404;
- 单个页面可单独排除:在「编辑页面 → 右侧 Kratos+ 命令面板」里关掉「在命令面板中展示」即可,默认展示;
- 「展示页面跳转」默认开启,「展示皮肤切换」默认关闭(皮肤条目较多,且需要同时开启「前端皮肤切换器」才生效);
- 还包含:切换暗色 / 亮色、随机漫步;
- 键盘全程可用:↑↓ 选择、Enter 打开、Esc 关闭;可选在页脚工具栈显示一个唤出按钮,方便不知道快捷键的访客发现。
- 配置位置:
主题选项 → 全站配置 → 命令面板。
- 快捷键按访客的操作系统自动适配:macOS 显示并响应
-
内链悬浮预览卡:正文里指向本站的链接,鼠标悬停后弹出预览卡,分两种卡型:
- 文章 / 页面:缩略图、标题、摘要、日期、字数与预计阅读时长、评论数;
- 分类 / 标签 / 系列归档:归档名、分类法徽章、描述、文章总数、最近几篇(条数可配,填 0 只显示总数)。「关键词自动内链」产出的正是这类归档链接,两个功能天然配套;归档描述里按自动内链约定写的「别名: a, b」配置行会被自动过滤,不会当成简介展示;
- 卡片内可直接点击:文章卡的标题与缩略图、归档卡的归档名与「最近几篇」里的每条标题,都是真链接,可以从预览卡直接点进去(鼠标从链接移到卡片上时不会收起);
- 静默加载:请求期间不显示任何「加载中」占位,数据到手才淡入卡片;鼠标已经移开或请求失败则什么都不会出现,不打扰阅读;
- 链接解析在服务端完成(REST 接口 + 按文章/按归档分别缓存),文章保存、分类标签增删改时自动失效;
- 接口只接受本站链接,不会变成任意 URL 的探测器;
- 只在真正具备悬停能力的指针设备上启用,触屏设备完全不启用、不拦截点击;
- 触发延时、摘要字数、阅读速度、缓存时长均可配置。
- 配置位置:
主题选项 → 阅读增强 → 内链悬浮预览卡。
优化
- 命令面板的入口开关全部集中到「全站配置 → 命令面板」,分「面板内容」与「搜索行为」两组。面板里出现哪些分组(页面跳转 / 暗色切换 / 随机漫步 / 皮肤切换)在一屏内调完,不必再去各功能的配置区里翻;暗夜模式、每日皮肤、随机漫步三处各留一条指引说明入口位置。
- 面板入口与页脚按钮彻底解耦:
- 暗色切换:此前「开了暗夜模式但隐藏了页脚切换按钮」时,命令面板里也看不到暗色入口 —— 其实
dark.js在暗夜总开关打开时就已加载、切换能力一直在,页脚按钮只是其中一个入口。现已改为只看暗夜总开关,隐藏页脚按钮时命令面板就是唯一入口。同时dark.js对外暴露window.kratosDark(current / set / toggle),供命令面板等组件复用,不再各自重写一遍写 localStorage 的逻辑。 - 皮肤切换:此前必须同时开启「前端皮肤切换器」按钮才生效。皮肤覆盖的持久化其实由
wp_head的内联脚本负责(切换器脚本只是页脚那个弹出面板的 UI),现已抽出独立判定,只开命令面板的皮肤分组也能让访客选皮肤并在下次访问时保持。
- 暗色切换:此前「开了暗夜模式但隐藏了页脚切换按钮」时,命令面板里也看不到暗色入口 —— 其实
- 随机漫步拆成三个开关:总开关、页脚按钮、命令面板入口各自独立。跳转端点与
stumble短码不受开关影响、始终可用,因此已经散在文章里的漫步链接不会失效。 - 命令面板唤出按钮换用终端提示符图标:原先与页脚的站内搜索按钮同为放大镜,两个并排难以分辨;同时把
.cmdk-launch登记进各皮肤的底部工具盒按钮名单,使其配色跟随皮肤(此前只有一层默认灰底)。 - 新增组件零皮肤成本接入:本次 5 个组件的配色全部走
--khs-*命名空间并接入components.css的皮肤别名层,形态走kr-*公共类,因此 19 套皮肤一行覆盖代码都没有新增,也自动跟随暗夜模式。 - 看板页面已并入皮肤的特色页豁免名单:新的
is-kratos-dashboard-page已加入全部皮肤对外层.details的装饰豁免(含 bookfold 的反向排除链),不会出现「卡中卡」。
修复
- 修复内链预览卡里摘要字号大于标题:摘要没有显式声明字号,只靠容器继承 13px,而
style.css有一条裸元素规则p, ul { font-size: 16px }—— 直接命中元素的声明优先于继承值,导致摘要被拉到 16px。现已为摘要与归档文章列表显式声明字号,层级恢复为「标题 15 > 摘要 13 > 列表 12」。
升级说明
- 无需任何配置迁移。5 个模块的开关默认全部开启,均可在主题选项中单独关闭。
- 搜索结果页:
search.php一旦随主题就位即自动生效(WordPress 模板层级优先于index.php)。若更偏好原来的样式,到全站配置 → 搜索结果页关掉「增强搜索结果页」即可。 - 评论地域分布:首次渲染需要解析 IP,如果站点评论量较大,第一次打开会稍慢,之后走缓存。若「评论配置 → 通用配置」里的 ip2region 数据库还没下载,短码会给出提示而不是报错。
- 累计字数统计:需要读取全部已发布文章正文逐篇计数。文章上千篇且觉得缓存重算偏慢的站点,可在「数据看板」里单独关掉这一项。
下载及预览
GitHub:https://github.com/lifengdi/kratos-plus/releases
Gitee:https://gitee.com/lifengdi/kratos-plus/releases
主题预览:https://www.lifengdi.com/
除非注明,否则均为李锋镝的博客原创文章,转载必须以链接形式标明本文链接
文章评论