之前在Kratos+ —— Kratos 主题二次开发记录这篇文章里面说了我对Kratos这款主题进行了二次开发的原因和目的以及1.0.1版本新增的部分功能。
目前借着AI的东风,花了300美刀,使用Claude对主题进行了更加深入的开发,本次为 1.0.1 之后的累计迭代,覆盖文章正文、评论、外观、内容创作四个方向。
大家可以直接通过本博客查看最新的样式,也可以通过下面的内容来了解详细更新。
主题下载地址:
- GitHub:https://github.com/lifengdi/kratos-plus/releases
- Gitee:https://gitee.com/lifengdi/kratos-plus/releases
一、总览
| 类别 | 数量 | 关键项 |
|---|---|---|
| 后台新增大版块 | 3 | 暗夜模式、每日皮肤、评论配置、说说配置 |
| 新功能模块 | 8 | 走心评论、用户等级、IP 归属地、说说 CPT、归档统计、暗夜模式、每日皮肤、Gutenberg 区块 |
| 新前台模板 | 3 | page-archives.php、page-heart-comments.php、page-shuoshuo.php |
| 新短码 | 4 | countdown、heart_comments、archives_stats、shuoshuo_feed |
| 自定义文章类型 | 1 | shuoshuo(说说) |
| Gutenberg 块 | 20 | 19 个短码块 + kratos/search 搜索小工具块 |
| 表情包结构 | 重构 | 旧扁平结构 → default/ 子目录 + 多包支持 |
二、新增功能详解
1. 🌙 暗夜模式(Dark Mode)
入口:主题设置 → 暗夜模式
| 字段 | 说明 | 默认 |
|---|---|---|
| 功能开关 | 总开关 | 关 |
| 默认模式 | 浅色 / 暗色 / 跟随系统 / 按时间段 | 浅色 |
| 暗色开始时间 | HH:MM 24h 制(按时间段模式下) | 19:00 |
| 暗色结束时间 | HH:MM 24h 制,结束 < 开始 = 跨午夜 | 07:00 |
| 前台切换按钮 | 在右下角显示浮动明/暗切换按钮 | 显示 |
| 用户偏好记住天数 | 访客手动切换的偏好保留天数,0 = 永久 | 30 |

2. 🎨 每日皮肤(Weekday Skins)
入口:主题设置 → 每日皮肤
| 字段 | 说明 |
|---|---|
| 皮肤模式 | off 关闭 / auto 按访客本地时区每天自动切换 / locked 全站锁定 |
| 锁定皮肤 | 9 套:周一·清玻、周二·拼贴、周三·凝脂、周四·素白、周五·琥珀、周六·海滨、周日·金辉、温色·羊皮、笺页·黄绢 |
部分主题预览:
温色·羊皮:

笺页·黄绢:

周一·清玻:

周二·拼贴:

周三·凝脂:

周四·素白:

周五·琥珀:

周六·海滨:

周日·金辉:

3. 💖 走心评论(Heart Comments)
把"温暖过你的留言"统一聚合展示。

入口:主题设置 → 评论配置 → 通用配置 → 走心评论
后台标记方式:
- 进入
评论菜单,鼠标悬停于某条评论,点击行操作中的「标记走心」。 - 或勾选多条评论后,使用顶部「批量操作 → 标记为走心评论」。
- 取消:在评论列表的「走心」筛选下拉中切到「仅走心评论」,再点击「取消走心」。
前台展示:
- 被标记的评论,作者名后自动追加粉橙色「💗 走心」徽章(前台 / 后台评论列表均生效)。
- 提供独立短码
heart_comments与同名页面模板page-heart-comments.php。
可配置项:
| 字段 | 说明 | 默认 |
|---|---|---|
| 徽章文字 | 1~4 字 | 走心 |
| 徽章文字颜色 | #ffffff | |
| 徽章渐变起始色 / 结束色 | 胶囊背景渐变 | #ff6b8b / #ff8e53 |
| 短码默认标题 / 副标题 / 每页条数 | heart_comments 未传参时的兜底 | 走心评论 / 那些温暖过我的留言 / 100 |
短码用法:
heart_comments
heart_comments title="走心留言" subtitle="温暖过我的瞬间" per_page="50"
分页通过 URL 参数 ?khc_page=2 控制;per_page="0" 表示不分页全部展示。
页面模板用法:
页面 → 新建;- 右侧
页面属性 → 模板选「走心评论」; - 标题随意,正文(the_content)会渲染在走心列表上方作为引导语。
4. 🏷️ 评论用户等级(Comment Rank)
入口:主题设置 → 评论配置 → 通用配置 → 用户等级
按评论数自动给评论作者展示等级头衔(前后台均生效)。
默认 5 级:
| 评论数 | 头衔 | 文字 | 背景 |
|---|---|---|---|
| ≥ 0 | 新人 | #ffffff | #9ca3af |
| ≥ 5 | 常客 | #ffffff | #3b82f6 |
| ≥ 20 | 熟客 | #ffffff | #10b981 |
| ≥ 50 | 大佬 | #ffffff | #f59e0b |
| ≥ 100 | 传奇 | #ffffff | #ef4444 |
匹配规则:取「门槛 ≤ 评论数的最高一级」。可在等级配置 group 中无限新增 / 删除等级。
5. 🌍 IP 归属地(ip2region)
完全独立、离线、无需第三方插件的 IP → 地理位置解析。
入口:主题设置 → 评论配置 → IP 归属地数据库
| 字段 | 说明 |
|---|---|
| 自动更新频率 | hourly / daily / weekly / monthly(推荐) / disabled |
| 启用 IPv6 数据库 | 额外下载 IPv6 库(~36 MB),适用于移动网络访问者 |
工作机制:
inc/ip2region/Searcher.class.php:纯 PHP 的 ip2region 二分查询实现。inc/ip2region/ip2region-updater.php:定时任务自动下载、缓存、热更新数据库;后台状态面板显示库版本、上次更新时间、记录数。inc/theme-comment-extends.php中的评论附加信息会优先调用kratos_ip2region_lookup(),不再依赖 WP-Statistics 插件。
⚠️ 启用前请先在该页面手动「立即更新」一次,否则前台评论的归属地会为空。
6. 😊 评论附加信息:浏览器 / 系统 / 归属地(分项开关)
入口:主题设置 → 评论配置 → 通用配置 → 评论附加信息
| 字段 | 说明 | 默认 |
|---|---|---|
| 显示附加信息 | 总开关 | 开 |
| 显示项 | 浏览器 / 系统 / 归属地(多选) | 全选 |
旧版强制 3 项全显,新版可独立勾选。关闭整块或全部取消勾选都会让评论后方不再追加这一行。
7. 🗒️ 说说(朋友圈式短动态)
后台:左侧菜单 → 「说说」 → 发布新说说
- 标题留空 → 自动生成
说说 YYYY-MM-DD HH:mm:ss - 支持编辑器、作者、缩略图、评论、自定义字段
配置:主题设置 → 说说配置
| 字段 | 说明 | 默认 |
|---|---|---|
| 页面标题 | 在「说说」模板顶部展示 | 我的说说 |
| 页面副标题 | 同上 | 记录碎碎念,分享小确幸 |
| 每页条数 | shuoshuo_feed 每页条数 | 10 |
| 折叠字数阈值 | 正文超过该字数折叠并显示「展开」,0 = 关闭折叠 | 300 |
前台:
- 列表:页面模板「说说」(
page-shuoshuo.php)+ 短码shuoshuo_feed - 单条:访问
https://站点/?shuoshuo=xxx或固定链接/shuoshuo/<slug>/(single-shuoshuo.php)
8. 📊 文章归档页(Archives)

新页面模板「文章归档」+ 短码 archives_stats。
短码参数:
archives_stats title="文章归档" subtitle="时光长河里的字字句句" tags_max="20"
| 参数 | 说明 | 默认 |
|---|---|---|
title | 头部标题 | 文章归档 |
subtitle | 头部副标题 | (自带文案) |
tags_max | 标签云最多展示数,0 不展示 | 20 |
包含 4 张总览统计卡(文章数 / 评论数 / 标签数 / 友链数)+ 按年份分组的文章列表 + 分类列表 + 标签云。年度统计直接走 SQL GROUP BY YEAR(post_date),比循环 get_posts 高效得多。
使用:新建页面 → 模板选「文章归档」即可。
9. ⏳ 倒计时短码 countdown
进度条样式展示「今天 / 本周 / 本月 / 今年已过去 X%」。
countdown # 全部 4 项
countdown type="day" # 仅今天
countdown type="day,year" # 今天 + 今年
支持值:day / week / month / year / all。每分钟自动刷新一次。配色固定(薄荷绿 / 蜜桃粉 / 淡黄绿 / 珊瑚粉),样式自带,不依赖外部 CSS。
10. 🧱 Gutenberg 区块面板:20 个块
绿色面板实例
蓝色面板
黄色面板
红色面板
把原先仅在经典编辑器(TinyMCE)有的快捷按钮,搬到 Gutenberg 区块面板。
实现为「动态块」:save 返回 null,render_callback 把属性拼回原短码字符串 → do_shortcode(),复用既有 PHP 渲染逻辑(评论权限校验、DPlayer 实例计数、iframe 拼装等)。
| 类别 | 区块(共 19) |
|---|---|
| wrap(仅 content) | h2title success info warning danger kbd mark reply |
| card(title + content) | successbox infobox warningbox dangerbox accordion |
| value(单字段) | striped(百分比)、bdbtn(百度网盘 URL)、music(网易云歌曲 ID)、vqq(腾讯视频 vid)、youtube(YouTube videoId)、bilibili(BV 号) |
外加一个独立块:
kratos/search —— 把「主题搜索小工具」直接作为 Gutenberg 块插入,等价于侧边栏的 w-search 小工具,可放置于任何页面 / 文章 / 区块插件区。容器会自动带 w-search class,样式与小工具区一致。
11. 🔍 搜索小工具
侧边栏新增独立的「主题搜索」小工具(外观 → 小工具 → 选「主题搜索」)。与 Gutenberg 的 kratos/search 块共享同一套渲染。
12. 🖼️ 文章图片自动加上灯箱(lightGallery)链接
经典编辑器粘贴的 <img>、外链 <img>、Markdown 转换的 <img>,过去不带 <a> 包裹时无法被 lightGallery 选择器命中。
v1.0.2 起,文章正文里所有满足以下条件的 <img> 会自动包一层 <a href="原图">:
- 后缀是
.jpg/.jpeg/.png/.gif/.bmp/.webp(query / fragment 不影响判断); - 尚未被
<a>包裹。
Gutenberg 显式选择「链接到媒体文件」的图片自带 <a>,不会被二次处理。
13. 🎭 多套表情包(Multi-Pack Smilies)
旧扁平结构升级为目录即一包:
assets/img/smilies/
├─ default/ ← 旧版 89 个表情,全部迁入此目录
│ ├─ 1.png
│ ├─ 2.png
│ └─ ...
└─ <pack-slug>/ ← 新增任意子目录即新增一包
├─ happy.png
└─ sad.png
Shortcode 命名规则:
default/组::1::2:…(向后兼容)- 其他组:
:<pack-slug>/<name>:,例::pepe/happy:
前台评论框的表情面板会自动生成 Tab(每包一个 Tab),由 assets/js/kratos.js 的 .smile-tab 点击事件切换。组名约束:[A-Za-z0-9_-]+;表情文件扩展名:png / gif / jpg / jpeg / webp。结果会被 kratos_smilies_groups 过滤器透出。
三、升级步骤建议
- 备份现有主题目录与数据库(特别是
wp_options中以kratos_options开头的项)。 - 上传新主题包覆盖(或
rsync -av --delete-after)。 - 进入 主题设置 → 关于主题,确认右下角版本号为
1.0.2。 - 按以下顺序检查:
- 自定义字体(功能配置):若原先依赖硬编码字体,重新填一遍。
- 评论验证码(评论配置 → 通用配置):v1.0.1 启用过的需要重新打开。
- IP 归属地(评论配置 → IP 归属地):手动点一次「立即更新」。
- 暗夜模式 / 每日皮肤:按需启用。
- CDN 加速(功能配置):若启用过,确认新版静态资源能正常访问。
- 表情包文件已自动迁移到
default/子目录,自定义表情请同步搬运。 - (可选)新建「文章归档」、「走心评论」、「说说」三类页面。
下载地址:https://github.com/lifengdi/kratos-plus/releases
除非注明,否则均为李锋镝的博客原创文章,转载必须以链接形式标明本文链接


文章评论
热门评论
牛,这款主题几年前用过,现在被你优化的更牛X了。
@老张博客 哈哈哈,你那个主题做的也很棒
牛,这款主题几年前用过,现在被你优化的更牛X了。
@老张博客 哈哈哈,你那个主题做的也很棒
主题配色挺好看。
@不凡 目前是每天一换,一个星期不重样