boxmoe_header_banner_img

加载中

文章导读

「萌盒子Lolimeow」主题二次开发笔记


avatar
白木 2025年8月27日 41

下载本文实现的Lolimeow主题包
购买服务器

✨ 新增功能 (New Features)

 

👤 用户头像系统重构

文件位置: core/module/fun-gravatar.php

  • 统一头像获取策略:实现了 Custom (自定义) > QQ Avatar (QQ头像) > Local Default (本地默认) 的降级策略
  • 本地默认头像:当用户无自定义头像且非QQ邮箱时,返回主题内置默认头像 (assets/images/touxiang.jpg)
  • QQ头像集成:支持识别 QQ 邮箱自动调用 QQ 头像,并支持多个 QQ 头像源 (Q1-Q4) 切换
  • 后台自定义头像管理 (core/module/fun-admin.php):
        • 在“个人资料”页面增加自定义头像上传/选择功能
        • 支持从媒体库选择图片
    • 提供“移除自定义头像”和“重置为默认头像”的一键操作
    • 增加头像预览功能,实时显示当前设置的头像

 

🪧 页面标语设置(Breadcrumb Slogan)

文件位置: core/panel/settings/set-slogan.php · header.php · core/panel/includes/class-options-framework-admin.php

  • 独立设置页:新增“页面标语设置”,位于“文章设置”下方(options.php 引入)
  • 可配置文案:支持首页、文章、分类、标签、搜索、404、作者、日期、归档、页面默认,以及友链、会员中心模板专属标语;均提供默认值
  • 前台输出:面包屑处的 span 文案从主题设置读取(header.php:275-304)
  • 仅重置标语:在保存区域新增“重置标语”扁平圆角弹窗,只恢复标语相关键到默认值,不影响其它设置(class-options-framework-admin.php:223-304)
  • 交互与样式:自定义圆角弹窗,按钮为“取消/确定”,确定后自动提交隐藏字段 reset_slogan=1 执行重置

使用步骤

  • 后台 → 外观 → 盒子萌主题设置 → 页面标语设置,填写各页面文案并保存
  • 如需恢复默认,仅点击“重置标语”并在弹窗中确定

 

⏱️ 底部运行时间增强(运行天数 → 天/时/分/秒)

文件位置: core/module/fun-basis.php · assets/js/boxmoe.js · assets/css/style.css

  • 结构升级:底部版权处将原单一“运行天数”改为“天/时/分/秒”四段显示,前缀文案支持自定义,附加 fa-clock-o 图标
  • 实时刷新:前端每秒计算并刷新,自动级联递进(秒→分→时→天),支持未来时间回退保护(负值归零)
  • 前后端衔接:开始时间通过主题设置下发到前端(ajax_object.running_days)
  • 彩色视觉:四段数字分别赋色以增强可读性(橙/绿/紫/蓝)

代码寻找

  • 渲染容器:wp-content/themes/lolimeow/core/module/fun-basis.php:223-230
  • 前端逻辑:wp-content/themes/lolimeow/assets/js/boxmoe.js:637-666
  • 样式定义:wp-content/themes/lolimeow/assets/css/style.css:865-882

使用步骤

  • 后台 → 外观 → 盒子萌主题设置 → 底部运行天数设置:
    • 开关:boxmoe_footer_running_days_switch
    • 开始时间:boxmoe_footer_running_days_time(例如 2025-01-01)
    • 前缀文案:boxmoe_footer_running_days_prefix(默认“本站已稳定运行了”)

 

🔎 主题设置页模糊搜索(后台 Options 搜索)

文件位置: core/panel/includes/class-options-framework-admin.php · core/panel/js/options-custom.js · core/panel/css/optionsframework.css

  • 页头搜索框:在主题设置页头新增搜索输入框 #of-search-input,支持模糊搜索所有设置项名称与分组标题
  • 实时筛选:输入时跨分组动态过滤,仅显示匹配的设置块与其所在分组;清空输入自动恢复当前标签页
  • 轻量实现:前端纯 JS 实现,无后端改动,与原标签切换、联动显示逻辑兼容

代码寻找

  • 输入框插入:wp-content/themes/lolimeow/core/panel/includes/class-options-framework-admin.php:209-213
  • 搜索逻辑:wp-content/themes/lolimeow/core/panel/js/options-custom.js:72-124
  • 样式规则:wp-content/themes/lolimeow/core/panel/css/optionsframework.css:145-146,169

使用步骤

  • 后台 → 外观 → 盒子萌主题设置 → 在页头搜索框输入关键词,即可实时过滤匹配的设置项;清空搜索恢复

 

🧼 写文章选区清除格式按钮(避免样式串改)

文件位置: assets/js/tinymce-clear-format.js · assets/js/clear-format-quicktags.js · core/module/fun-admin.php

  • 行为描述:在写文章页的编辑器新增“清除格式”按钮;当选中内容点击按钮后,移除选区中的内联样式、类名、ID、事件与 data- 属性,保留必要的 a[href] 与 img[src|alt|title],并进一步执行 RemoveFormat 去除残留格式,避免前端样式串改
  • 适配范围:支持可视化编辑器(TinyMCE)与文本编辑器(Quicktags)
  • 代码寻找
    • TinyMCE 插件注册与按钮:wp-content/themes/lolimeow/core/module/fun-admin.php:23-36,46-50
    • TinyMCE 清洗逻辑:wp-content/themes/lolimeow/assets/js/tinymce-clear-format.js
    • 文本编辑器按钮与清洗:wp-content/themes/lolimeow/assets/js/clear-format-quicktags.js
    • 脚本加载(仅写文章页):wp-content/themes/lolimeow/core/module/fun-admin.php:305-308
  • 使用步骤:选中需要清理的段落或文本 → 点击“清除格式”;文本编辑器同样在选区后点击按钮完成清洗

 

🖼️ 文章页图片查看器(点击预览/全屏)

文件位置: assets/js/image-viewer.js · assets/css/image-viewer.css · core/module/fun-basis.php

  • 交互行为:文章页 .single-content 内图片可点击预览,淡入 Overlay 居中显示;支持拖拽、滚轮缩放、旋转、原始大小、上一张/下一张;点击遮罩空白处关闭
  • 自然尺寸显示:默认按图片原始尺寸渲染,不受容器尺寸限制;需适配屏幕时点击“全屏”切换到适配模式(等比缩放至视口)
  • 全屏适配:根据图片 naturalWidth/naturalHeight 与窗口尺寸自动计算缩放;退出全屏恢复之前的缩放与位移状态
  • 快捷键:Esc 关闭,+/= 放大,- 缩小,R 旋转,0 原始大小,F 全屏,方向键切换

代码寻找

  • 资源加载:wp-content/themes/lolimeow/core/module/fun-basis.php:139(CSS) · wp-content/themes/lolimeow/core/module/fun-basis.php:147(JS)
  • 前端逻辑:wp-content/themes/lolimeow/assets/js/image-viewer.js
  • 样式规则:wp-content/themes/lolimeow/assets/css/image-viewer.css

实现要点

  • 图片收集:收集 .single-content img,兼容懒加载,优先读取 data-src/currentSrc
  • 行为控制:拖拽更新 translate(x,y);缩放范围 0.5–3.0;旋转每次 +90°;组图切换与计数 当前/总数
  • 全屏类名:切换 tk-image-viewer__wrapper–fullscreen,CSS 中限制 img 最大宽高为 100vw/100vh
  • 事件管理:关闭时移除键盘监听,防止泄漏;对子链接点击统一 preventDefault + stopPropagation 避免跳转

 

🖱️ 复制事件顶部横幅提示(Copy Banner)

文件位置: assets/js/boxmoe.js · assets/css/style.css

  • 复制提示:前端触发任意复制事件时,顶部横幅下滑显示提示文案:您拷贝了本站内容,记得注释来源哦~( ̄y▽, ̄)╭ 👍🏻
  • 联动复制按钮:文章代码块的“复制代码”按钮复制成功同样触发横幅提示(ClipboardJS 成功回调联动)
  • 浅蓝背景:横幅背景为浅蓝色 #e6f2ff,适配亮/暗主题色体系
  • 紫色遮罩动画:遮罩为 rgba(139,61,255,0.35),自左向右覆盖横幅背景;推进过程中保持圆角前沿(约 18px)
  • 完全覆盖与收起:遮罩在动画末尾完全覆盖横幅(超出 100% 宽度以避免右侧露出),随后横幅自动收起;重复复制会重置动画与计时
  • 移动端适配:在窄屏缩小内边距与字号,避免遮挡

交互时序

  • 遮罩动画约 1.1s 完成;为确保“完全覆盖 → 收起”,横幅在遮罩结束后约 0.4s 隐藏,总显示时长约 1.5s

代码寻找

  • 初始化与事件绑定:wp-content/themes/lolimeow/assets/js/boxmoe.js:744–760
  • 复制按钮联动:wp-content/themes/lolimeow/assets/js/boxmoe.js:610–620
  • 横幅样式与动画:wp-content/themes/lolimeow/assets/css/style.css:953–959(含 @keyframes copyMaskSweep)

 

🅰️ 字体设置与默认字体(自定义上传/编辑器注入)

文件位置: core/panel/settings/set-fonts.php · core/module/fun-fonts.php · core/panel/options-framework-js.php · core/panel/css/optionsframework.css

  • 新增“字体设置”分组与开关:boxmoe_custom_font_switch(开启后自定义字体才生效)
  • 自定义字体列表:纯文本、扁平圆角表格,支持“新增/修改/删除”;“新增”按钮置于标题右侧(class-options-interface.php:101 注入按钮,样式见 optionsframework.css)
  • 弹窗编辑:填写“显示名称”、上传 woff2 或自定义 woff2 链接(二选一、互斥校验),保存后写入列表;删除采用事件委托修复(core/panel/options-framework-js.php:257-265)
  • 数据存储:以数组形式保存到 boxmoe_fonts,每项包含 name/woff2/url;服务端清洗互斥与合法性(core/panel/includes/class-options-sanitization.php:296-312)
  • 经典编辑器字体选择:通过 TinyMCE 注入自定义字体到 font_formats(core/module/fun-fonts.php:87),并追加 @font-face 到 content_style 保证渲染;确保显示默认内置字体列表(core/module/fun-fonts.php:121-139)
  • Gutenberg 支持:动态注入到 theme.json 数据(wp_theme_json_data_theme,core/module/fun-fonts.php:24-65),区块“字体族”出现自定义项
  • 前端样式:统一注入 @font-face(core/module/fun-fonts.php:4-22)
  • 站点默认字体:新增 boxmoe_default_font 下拉,选项包含“默认字体”+自定义字体名称;选择非“默认字体”时为全站应用 body{font-family: …}(前端与编辑器均注入,core/module/fun-fonts.php:18-22, 80-85, 142-150)
  • 上传支持:允许上传 woff/woff2(upload_mimes,core/module/fun-basis.php:349)
  • 布局与可读性优化:
    • 表格标题与“新增”按钮同列对齐(optionsframework.css 与 class-options-interface.php:101-106)
    • 文本自适应换行、长链接不溢出容器(optionsframework.css)

使用步骤

  • 后台 → 外观 → 盒子萌主题设置 → 字体设置:
    • 开启“自定义字体”→ 点击“新增”填写名称并上传或填写链接(二选一)→ 保存设置
    • 如需修改/删除,列表中点击“修改/删除”即可;保存后生效
    • 选择“站点默认字体”应用到全站(选择“默认字体”保持主题原样)

 

📃写文章 MD 语法编辑器(开关/工具栏/预览)

文件位置: core/module/fun-markdown.php · assets/js/markdown-editor.js · assets/css/markdown-editor.css · core/panel/settings/set-optimize.php · functions.php

  • 开关入口:后台 → 外观 → 盒子萌主题设置 → 系统优化 → “写作类相关开关优化” → 启用 MD 语法编辑器(boxmoe_md_editor_switch)参考(wp-content/themes/lolimeow/core/panel/settings/set-optimize.php:28-33)
  • 模块引入:主题主入口引入 fun-markdown.php 模块参考(wp-content/themes/lolimeow/functions.php:36)
  • 渲染流程:前台内容渲染在 the_content 上执行 Markdown → HTML → do_shortcode,保证主题原生短代码正常工作参考(wp-content/themes/lolimeow/core/module/fun-markdown.php:51-57)
  • 编辑器行为:开启开关后禁用 Gutenberg 与富文本编辑,使用纯文本域;提供 Markdown 工具栏与“预览”按钮,移除“实时预览”参考(wp-content/themes/lolimeow/core/module/fun-markdown.php:59-72 · wp-content/themes/lolimeow/assets/js/markdown-editor.js:26-39,57-58)
  • 预览接口:wp_ajax_boxmoe_md_preview 接口返回解析后的 HTML,并执行短代码以便预览与前台一致参考(wp-content/themes/lolimeow/core/module/fun-markdown.php:73-80)
  • 工具栏定位:Markdown 工具栏挂载在“表情栏”之后,避免遮挡;提升层级避免覆盖参考(wp-content/themes/lolimeow/assets/js/markdown-editor.js:40-49 · wp-content/themes/lolimeow/assets/css/markdown-editor.css:1)
  • 样式增强:预览区圆角卡片、代码块深色背景、列表缩进与图片自适应;下拉选择统一圆角边框参考(wp-content/themes/lolimeow/assets/css/markdown-editor.css:4-10)
  • 短代码下拉:保留“添加媒体”旁原生 Boxmoe短代码 下拉,移除额外的重复短代码控件,避免界面混乱

使用步骤

  • 主题设置中开启“启用MD语法编辑器”并保存
  • 写文章页:使用工具栏按钮(B/I/H1–H3/Link/Image/Code/Quote/UL/OL)编辑 Markdown;点击“预览”生成预览区
  • 需要插入主题短代码时,使用“添加媒体”旁的 Boxmoe短代码 下拉选择插入即可

 

⚡ 优化 (Optimizations)

 

🔗 链接体验优化

  • 后台站点预览:后台顶部栏的“查看站点”链接改为新标签页打开 (_blank),避免覆盖后台页面 (boxmoe_adminbar_viewsite_newtab).

 

✍️ 写文章入口新标签页打开

文件位置: core/module/fun-admin.php · assets/js/admin-view-newtab.js

  • 覆盖范围:顶部“新建→文章”、侧边“文章→写文章”、文章列表页右上角“新增文章 / Add New”
  • 新标签与安全:统一添加 target=”_blank” 与 rel=”noopener noreferrer”,避免后台页被覆盖与提升安全性
  • 代码寻找
    • Admin Bar 新建文章:wp-content/themes/lolimeow/core/module/fun-admin.php:338-346
    • 后台统一新标签脚本:wp-content/themes/lolimeow/assets/js/admin-view-newtab.js:1-12

 

💊 药丸短代码样式修复(Bootstrap 5 兼容)

文件位置: core/module/fun-shortcode.php

  • 修复原因:旧类名 badge-primary 等在 Bootstrap 5 已弃用;bg-gradient- 不存在,导致 前端样式不生效
  • 修复方案:统一改用 text-bg- 颜色类,并通过 bg-gradient 叠加实现渐变;内容输出使用 wp_kses_post 进行安全过滤
  • 支持值
    • 1–8 纯色:primary / secondary / info / success / danger / warning / light / dark
    • 9–16 渐变:在上述纯色基础上叠加 bg-gradient
  • 用法示例
    • [yaowan style='5']危险 → <span class=”badge text-bg-danger mb-1 mt-1″>危险</span>
    • 主要 → <span class=”badge text-bg-primary bg-gradient mb-1 mt-1″>主要</span>
  • 影响范围:仅影响 短代码的前端徽章渲染,不改动其它短代码寻找

 

🧾 代码短代码与复制修复([ precode ])

文件位置: core/module/fun-shortcode.php · assets/js/boxmoe.js · assets/js/quicktags.js

  • 编辑器包装清理:清理短代码内容中的 <p>/<div>/<br> 等编辑器注入标签,使用 shortcode_unautop 转换换行并做 trim,防止被当作 HTML 渲染
  • 安全转义:最终以 <pre><code>…</code></pre> 输出,并对内容 esc_html 确保纯文本显示(防 XSS/标签破坏)
  • 参数支持:linenums 控制是否显示行号,lang 指定高亮语言(Prettify 的 lang-
  • 复制纯文本:复制按钮改用 data-clipboard-text,从 ol.linenums li 聚合文本,自动去除行号与首尾空行
  • 经典编辑器按钮:将“代码高亮”按钮改为插入短代码 [ precode ]…[/precode ],统一渲染路径

代码寻找

  • 短代码定义与清理:wp-content/themes/lolimeow/core/module/fun-shortcode.php:136-156
  • 复制逻辑修复:wp-content/themes/lolimeow/assets/js/boxmoe.js:590-615
  • 经典按钮替换:wp-content/themes/lolimeow/assets/js/quicktags.js:8

使用示例

  • 基本:[ precode ]你的代码[/precode ]
  • 指定语言:[ precode lang=”js”]const a=1;[/precode ]
  • 关闭行号:[ precode linenums=”0″]…[/precode ]

 

🌙 暗色模式代码块浅紫配色

文件位置: assets/css/style.css

  • 行号栏浅紫:在暗色模式([data-bs-theme=”dark”])下,将行号背景与边框改为浅紫 #f3e8ff / #e9d5ff,行号文本为 #7c3aed
  • 主体保持深色:代码主体维持深色编辑器风格,保证可读性与对比度

代码寻找

  • 规则入口:wp-content/themes/lolimeow/assets/css/style.css:533-537(新增以 [data-bs-theme=”dark”] 开头的 3 条规则)

 

🧼 移除代码块内文字背景(仅限 <pre><code>)

文件位置: assets/css/style.css

  • 背景覆盖:为避免全局 .single-content code{ background-color:#f9f2f4 } 影响代码块,新增覆盖规则使 <pre><code> 内的 code 背景透明

代码寻找

  • 覆盖规则:wp-content/themes/lolimeow/assets/css/style.css:519, 538(pre.prettyprint code{ background:transparent!important; … })

 

🧾 代码短代码深度优化([ precode ] 防自动分行/粘贴清理)

文件位置: core/module/fun-shortcode.php · assets/js/tinymce-precode-paste.js · assets/js/tinymce-clear-format.js · assets/js/clear-format-quicktags.js · core/module/fun-admin.php · assets/css/style.css

  • 服务端清洗:在短代码渲染阶段彻底移除编辑器注入的块级标签,将 <br> 归一化为单换行,并压缩多余空行(fun-shortcode.php:116–123)
  • 粘贴前拦截:TinyMCE 在粘贴含 [ precode ] 的内容时,自动清理内部的 <div>/<p>/<span>/<br> 包装并归一化换行,避免将样式粘入代码块(assets/js/tinymce-precode-paste.js:1–61,注册于 core/module/fun-admin.php:47–50)
  • 清除格式增强:可视化编辑器与文本编辑器的“清除格式”按钮同时支持标签剥离与换行归一化(tinymce-clear-format.js:41–53、clear-format-quicktags.js:41–55)
  • 显示层禁止折行:对 .prettyprint 及其子节点(含 ol.linenums/li/code/span)统一强制 white-space: pre 并禁用断词,长行以水平滚动呈现(assets/css/style.css:518–522)

效果

  • 前端文章页面的 [ precode ] 模块不再出现“自动分行/空行 li”,长行保持单行显示并可水平滚动
  • 从其他来源复制粘贴到编辑器时,即便原文本包含块级包装,也会在进入 [ precode ] 后被转换为纯文本行

使用步骤

  • 编辑器中直接将文本置于 [ precode ]…[/precode ];若非粘贴场景存在残留格式,选中后点击“清除格式”即可
  • 需要行号时使用 linenums=”1″;关闭行号用 linenums=”0″

代码寻找

  • 短代码清洗与输出:wp-content/themes/lolimeow/core/module/fun-shortcode.php:109–133
  • 粘贴拦截插件:wp-content/themes/lolimeow/assets/js/tinymce-precode-paste.js:1–61
  • 编辑器清除格式:wp-content/themes/lolimeow/assets/js/tinymce-clear-format.js:1–60 · wp-content/themes/lolimeow/assets/js/clear-format-quicktags.js:1–57
  • 插件注册:wp-content/themes/lolimeow/core/module/fun-admin.php:47–50
  • 样式禁折行:wp-content/themes/lolimeow/assets/css/style.css:518–522

 

🧩 Favicon 全局替换与站点图标过滤

文件位置: core/module/fun-basis.php · header.php · core/module/fun-admin.php

  • 主题选项键:boxmoe_favicon_src(后台“Favicon地址”)
  • 前台输出:页面头部统一输出 <link rel=”icon” …>(wp-content/themes/lolimeow/header.php:14)
  • 后台/登录页同步:后台与登录页同样输出主题 Favicon(core/module/fun-admin.php:199、core/module/fun-admin.php:206-207)
  • 站点图标过滤:通过过滤 get_site_icon_url 全局覆盖 WordPress 站点图标,避免出现默认 WP 图标(core/module/fun-basis.php:58-65)

使用步骤

  • 后台 → 外观 → 盒子萌主题设置 → 基础设置 → “Favicon地址”,上传或填写图标 URL 即可全站生效;未设置则回退到 assets/images/favicon.ico

 

📋 正文列表样式修复(ul/ol 符号与缩进)

  • 问题原因:主题全局重置 ol, ul, li { list-style: none }(wp-content/themes/lolimeow/assets/css/style.css:24)导致文章正文的项目符号与编号不显示
  • 修复范围:仅在正文容器 .single-content 恢复 ul/ol 的符号与缩进,不影响页头导航、侧栏部件、浮动菜单等区域
  • 规则摘要
  • .single-content ul { list-style: disc; margin-left: 1.25rem; }
  • .single-content ol:not(.ol) { list-style: decimal; margin-left: 1.25rem; }
  • 嵌套列表:ul ul → circle,ol ol → lower-alpha;对应 li 同步设置
  • 保留主题自定义计数列表 .single-content ol.ol 的行为(不覆盖 .ol)
  • 影响与兼容:限定作用域,导航/侧栏依旧保持无符号列表;代码行号列表 pre.prettyprint ol.linenums 维持十进制样式不变
  • 代码寻找
  • 正文容器:wp-content/themes/lolimeow/page/template/blog-single.php:57–59
  • 全局重置:wp-content/themes/lolimeow/assets/css/style.css:24
  • 新增覆盖:wp-content/themes/lolimeow/assets/css/style.css:447–455
  • 验证步骤:清理站点与浏览器缓存,打开包含 ul/ol 的文章,确认正文中项目符号与编号正常显示;嵌套列表符号按级别变化

 

🎬 文章页视频播放修复与短代码兼容

文件位置: core/module/fun-shortcode.php · assets/css/style.css

  • 短代码增强:扩展 [ video] 支持多属性名与尺寸,兼容旧写法
  • 识别属性:link/mp4/src/url(四选一均可)· poster/autoplay/loop/muted/playsinline · width/height
  • 自动清理链接两侧包裹符号(反引号/引号/空白),避免因格式导致不显示
  • 内容解析:从短代码内容中提取链接;若内容包含 <iframe>,直接原样输出
  • 平台支持
  • YouTube:自动生成标准 iframe(ratio-16×9);解析失败回退为通用 iframe src=”原链接” 
  • Bilibili:识别 BV,输出播放器 iframe;解析失败同样回退通用 iframe 
  • MP4 播放:使用 HTML5 <video preload=”metadata” controls playsinline webkit-playsinline>,更优的移动端与首帧体验
  • 样式优化:为 .single-content video 增加 object-fit: contain,避免非标准比例视频拉伸或溢出

代码寻找

  • 短代码实现与兼容:wp-content/themes/lolimeow/core/module/fun-shortcode.php:227–297(含链接提取/平台识别/iframe 回退)
  • 样式规则:wp-content/themes/lolimeow/assets/css/style.css:482(object-fit: contain)

使用示例

  • MP4(推荐):
  • [ video width=”1160″ height=”686″ mp4=”****”][/video]
  • [ video link=”https://example.com/video.mp4″ poster=”https://example.com/cover.jpg” playsinline=”1″][/video]
  • YouTube:
  • [ video link=”https://youtu.be/VIDEO_ID”][/video]
  • [ video]https://www.youtube.com/watch?v=VIDEO_ID[/video]
  • Bilibili:
  • [ video link=”https://www.bilibili.com/video/BVxxxxxxxxx”][/video]
  • 直接内联 iframe:
  • [ video]<iframe src=”https://player.example.com/…” allowfullscreen></iframe>[/video]

注意事项

  • 若站点启用了“禁用 Embeds”(core/module/fun-optimize.php:159–170),WordPress 不会自动把纯链接转换为播放器;请使用 [ video] 以确保显示
  • 建议不要在链接两侧使用反引号;若不慎添加,短代码也会自动清理,但推荐保持纯净链接格式

 

🖼️ GIF 懒加载豁免修复(避免无限加载)

文件位置: core/module/fun-article.php

  • 问题现象:文章中 .gif 图片被注入懒加载占位图(loading.gif),在部分场景下未触发替换,表现为“一直显示加载动画,真实 GIF 不出现”。
  • 修复方案:为正文中的 .gif 图片增加服务端豁免过滤;当检测到 data-src 指向 .gif 时,移除 class=”lazy”/loading=”lazy”/data-src,并将 src 直接设为原始 GIF 链接,确保即时加载与播放。
  • 代码路径:boxmoe_disable_lazy_for_gifs(新增)在 the_content 上以 priority=100 执行,位于懒加载注入之后。
  • 兼容性:仅影响正文图片,不改动头像等其它区域;与 Fancybox 的图片预览兼容。

 

💄 美化 (Beautifications)

 

🎭 后台与登录页定制

文件位置: core/module/fun-admin.php

  • 登录页面定制
    • 添加了动态渐变背景动画 (CSS Animation)
    • 优化了登录框样式 (圆角、阴影、透明度)
    • 自定义 Logo 显示
  • 后台Favicon同步:后台和登录页自动同步前端设置的 Favicon

 

🎨 后台UI扁平化

文件位置: assets/css/admin-flat-rounded.css

  • 扁平圆角风格:引入了全新的后台样式文件,对 WordPress 后台界面进行了全面的扁平化和圆角处理
  • 配色优化:统一了按钮、输入框、菜单的配色体系 (蓝色系),提升视觉体验

 

🌈 滚动条全局渐变色

文件位置: assets/css/style.css · core/module/fun-admin.php

  • 前台渐变:亮色模式为粉色→橙色→青色;暗色模式为紫色→浅蓝色→粉色
  • 变量化适配:使用 :root 与 [data-bs-theme=”dark”] 定义滚动条变量,Chrome/Edge/Safari 显示线性渐变,Firefox 通过 scrollbar-color 提供回退配色
  • 后台与登录页:通过 admin_head 与 login_head 注入同样的滚动条渐变,并基于 prefers-color-scheme 自动适配明暗
  • 代码寻找:wp-content/themes/lolimeow/assets/css/style.css:11-19 · wp-content/themes/lolimeow/core/module/fun-admin.php:218-232
  • 使用说明:无需额外设置,随主题自动生效

 

🌓 主题切换动画与中文化

文件位置: assets/js/boxmoe.js · header.php · page/p-signin.php · page/p-signup.php · page/p-reset_password.php

  • 同款动画:前端主题切换加入与 ImageShiroki 一致的圆形扩散过渡效果,点击切换时由按钮位置向外收缩过渡,提升视觉反馈
  • 模式支持:继续支持 亮色 / 暗色 / 跟随系统 (Auto) 三种模式;Auto 根据系统配色自动决定浅/深色,仍使用 data-bs-theme 与 localStorage(“theme”) 保存状态
  • 中文文案:切换菜单文案统一改为中文:亮色、暗色、跟随系统,覆盖移动端抽屉与桌面端下拉菜单,以及登录/注册/找回密码页面的同款菜单

代码寻找

  • 动画函数与调用:wp-content/themes/lolimeow/assets/js/boxmoe.js:664 · 点击事件集成:wp-content/themes/lolimeow/assets/js/boxmoe.js:563-571
  • 桌面端下拉菜单中文化:wp-content/themes/lolimeow/header.php:178-194
  • 移动端抽屉中文化:wp-content/themes/lolimeow/header.php:150-152
  • 登录页中文化:wp-content/themes/lolimeow/page/p-signin.php:106-122
  • 注册页中文化:wp-content/themes/lolimeow/page/p-signup.php:114-131
  • 找回密码页中文化:wp-content/themes/lolimeow/page/p-reset_password.php:81-97

使用步骤

  • 顶部齿轮按钮打开主题菜单,选择 亮色 / 暗色 / 跟随系统;手动切换时出现圆形扩散动画,跟随系统在系统模式变化时自动应用对应主题

 

🏷️ 文章卡片右上角徽章系统

文件位置: page/template/blog-list.php · assets/css/style.css · functions.php

  • 徽章类型:密码保护、私密文章、置顶 三种;仅显示一个,优先级依次为:密码保护 → 私密文章 → 置顶
  • 模板渲染:在卡片容器中进行条件判断并输出徽章,锚定于卡片右上角
  • 样式统一:圆角描边、细边框、轻阴影;绝对定位避免参与 Flex 排版;移动端缩小尺寸并微调边距
  • 代码寻找
    • 模板徽章:wp-content/themes/lolimeow/page/template/blog-list.php:12–17
    • 样式规则:wp-content/themes/lolimeow/assets/css/style.css:224–225
    • 去除标题前缀(保护/私密):wp-content/themes/lolimeow/functions.php:36–37

 

🛡️ 密码保护文章摘要文案(可配置)

文件位置: core/panel/settings/set-artice.php · core/module/fun-article.php

  • 后台选项:文章设置新增“密码保护文章摘要文案”,默认值为“无法提供摘要参考这是一篇受保护的文章”
  • 前台逻辑:受密码保护的文章在列表摘要处显示该自定义文案
  • 代码寻找
    • 选项定义:wp-content/themes/lolimeow/core/panel/settings/set-artice.php:84–89
    • 摘要逻辑:wp-content/themes/lolimeow/core/module/fun-article.php:109–120
  • 使用步骤:后台 → 外观 → 盒子萌主题设置 → 文章设置 → 填写并保存

 

🧰 徽章定位与排版修复

  • 绝对定位:徽章采用 position:absolute 固定在卡片右上角,不参与 Flex 排版,避免挤压图片与文本
  • 层级与交互:设置 z-index:3 与 pointer-events:none,确保不遮挡标题链接点击区域
  • 移动端适配:在 @media (max-width:768px) 下缩小内边距与字号,保持对齐与不遮挡

 

白木_ShiRoKi

  •  商务微信:Misaka1662
  •  添加请备注「来意」,否则不会通过哟~😝
  •  商务邮箱:Misaka273@outlook.com
  •  「半碗残星~呜呜呜~再来!我还能…」

 

感谢您的支持
微信赞赏

微信扫一扫

支付宝赞赏

支付宝扫一扫



评论(0)

查看评论列表

暂无评论


发表评论

表情 颜文字
插入代码

广告版 ne-2058250819

后退
前进
刷新
复制
粘贴
全选
删除
返回首页