0%
boxmoe_header_banner_img

加载中

「盒子萌Lolimeow」主题二创「纸鸢版🕊️更新」与「🗼开发笔记」


avatar
白木 2025年8月27日 2026年4月3日 2.92k

🌸 自定义后台主题UI色

配色方案调整

  • 原始配色:粉色系渐变
  • 新配色:半透明黑色渐变灰白色
  • 渐变方案

- 黑色渐变:rgba(0, 0, 0, 0.7) → rgba(102, 102, 102, 0.8)
- 灰色渐变:rgba(245, 245, 245, 0.95) → rgba(208, 208, 208, 0.85)

CSS变量系统搭建

  • 创建变量文件assets/css/admin/admin-shiroki.css
  • 定义变量类型

- 粉色系:--shiroki-pink-light, --shiroki-pink-medium, --shiroki-pink-dark, --shiroki-pink-deep
- 灰色系:--shiroki-gray-light, --shiroki-gray-medium, --shiroki-gray-dark
- 黑色系:--shiroki-black-light, --shiroki-black-medium, --shiroki-black-dark
- 白色系:--shiroki-white
- 渐变定义:--shiroki-gradient-pink, --shiroki-gradient-gray, --shiroki-gradient-black
- 阴影:--shiroki-shadow-pink, --shiroki-shadow-black

文件修改清单

变量文件
  • 文件assets/css/admin/admin-shiroki.css
  • 功能:定义所有CSS变量,实现配色集中管理
后台样式文件
  • 文件assets/css/admin-flat-rounded.css
  • 修改

- 引入变量文件:@import url('admin/admin-shiroki.css');
- 替换所有硬编码颜色为CSS变量
- 调整顶部管理栏、侧边栏、按钮、表格等样式
- 同步媒体按钮区域与Markdown工具栏背景色

Markdown编辑器样式
  • 文件assets/css/markdown-editor.css
  • 修改

- 引入变量文件:@import url('admin/admin-shiroki.css');
- 替换所有硬编码颜色为CSS变量
- 调整工具栏、按钮、预览区域等样式

视觉一致性优化
  • 同步区域

- Markdown工具栏 (boxmoe-md-toolbar)
- 媒体按钮区域 (#wp-content-media-buttons)
- 短代码选择器 (boxmoe-md-shortcodes)

  • 统一样式:使用相同的半透明灰色渐变背景
技术亮点
  • 模块化:通过CSS变量实现配色集中管理
  • 可维护性:修改配色只需更新变量文件
  • 一致性:确保整个后台界面视觉统一
  • 响应式:半透明渐变适配不同背景




🔠 修复编辑页面,工具栏滚动页面不固定问题

问题描述

  • 编辑页面的三个工具栏(添加媒体工具栏、MD语法工具栏、WordPress默认工具栏)在滚动页面时不固定在顶部
  • 工具栏之间存在重叠问题,影响编辑体验

解决方案

  • 移除 .quicktags-toolbar#ed_toolbaroverflow: hidden 属性,使 position: sticky 生效
  • 调整三个工具栏的 top 值和 z-index 值,确保按正确顺序排列且不重叠
  • 修复工具栏的层级关系,确保第二个工具栏(MD语法工具栏)不被第三个工具栏(WordPress默认工具栏)盖住

具体修改

  1. 第一个工具栏(#wp-content-media-buttons)

- position: sticky !important
- top: 0 !important
- z-index: 1003 !important

  1. 第二个工具栏(.boxmoe-md-toolbar)

- position: sticky !important
- top: 48px !important
- z-index: 1002 !important

  1. 第三个工具栏(#ed_toolbar, .quicktags-toolbar)

- position: sticky !important
- top: 144px !important
- z-index: 1001 !important

修复效果

  • 工具栏现在会正确固定在页面顶部,不随页面滚动而消失
  • 三个工具栏按正确顺序排列,不会相互重叠
  • 编辑体验得到改善,工具栏操作更加方便

技术原理

  • 使用 position: sticky 使工具栏在滚动时固定在指定位置
  • 通过设置不同的 top 值确保工具栏垂直排列
  • 使用不同的 z-index 值确保工具栏按正确层级显示
  • 移除 overflow: hidden 属性,确保 position: sticky 能够正常工作




🏄🏻‍♀️ 优化搜索引擎抓取及文章封面和作者头像显示问题




🚀 优化文章导读按钮

功能概述

将原有的文章导读按钮升级为 SVG 圆形阅读进度指示器,并添加轮盘展开式菜单风格

主要改动

1. footer.php
  • 将原来的 div 按钮替换为 SVG 圆形进度指示器
  • 添加 SVG 渐变定义(支持亮色/暗色模式切换)
  • 新增 轮盘展开式菜单(包含「目录」「顶部」「底部」三个功能按钮)
  • 保留并优化文章目录面板
2. style.css
  • SVG 进度环样式:使用 stroke-dasharraystroke-dashoffset 实现进度动画效果
  • 轮盘展开动画:使用 cubic-bezier(0.68, -0.55, 0.265, 1.55) 缓动函数实现弹性展开效果
  • 悬停效果优化:悬停时保持展开位置的同时轻微放大(scale 1.1)并改变背景色
  • 暗色模式适配:支持 data-bs-theme="dark" 自动切换配色
  • 目录面板动画:优化打开/关闭时的透明度和缩放过渡效果
3. boxmoe.js
  • 阅读进度计算:实时计算页面滚动百分比
  • SVG 进度更新:根据滚动位置动态更新圆环进度
  • 轮盘菜单交互

- 点击主按钮展开/收起轮盘菜单
- 「目录」按钮打开文章导读面板
- 「顶部」按钮平滑滚动到页面顶部
- 「底部」按钮平滑滚动到页面底部

  • 外部点击关闭:点击页面其他区域自动关闭所有菜单

交互流程

  1. 滚动页面超过 350px 时,左侧显示 SVG 圆形进度指示器
  2. 圆环随阅读进度实时填充,显示当前阅读百分比
  3. 鼠标悬停在按钮上时显示 百分比文字提示
  4. 点击进度按钮,轮盘菜单以弧形展开三个选项
  5. 悬停轮盘项时轻微放大并变色,保持位置不变
  6. 点击「目录」打开 文章导读面板,显示文章章节导航
  7. 点击外部区域自动关闭所有菜单

技术要点

  • SVG 圆形进度计算:圆周长 = 2πr ≈ 276.46(r=44)
  • stroke-dashoffset = 圆周长 - (进度百分比 × 圆周长)
  • 轮盘展开使用 CSS transform 的 translate 实现弧形分布
  • 暗色模式通过 CSS 变量和属性选择器实现自动切换




🛠️ 优化类型与对象

📌 优化背景
主题在 PHP 8.0 及以上版本运行时出现【未定义数组键】警告,需要进行兼容性修复以确保在 PHP 8 环境下稳定运行。

🔧 修复内容

文件路径 行号 问题描述 修复方案
--------- ------ --------- ---------
core/panel/includes/class-options-framework-admin.php 483 未定义数组键 boxmoe_msg_notice_info 添加 isset($input[$id]) 检查
page/page-friendlink.php 828 $_GET['fl_type'] 未检查直接使用 添加 isset($_GET['fl_type']) 检查
core/module/fun-navwalker.php 72-76 $args 对象属性可能未定义 使用 null 合并运算符 ?? 确保属性存在
core/module/fun-admin.php 601 count() 对可能为 null 的变量使用 使用 !empty() 替代 count()
core/panel/includes/class-options-media-uploader.php 92 使用 sizeof()(非最优) 使用 count() 替代
page/template/user-home.php 73 使用已废弃的 global $user_ID 使用 get_current_user_id() 替代

✨ 代码示例

// 🛡️ 修复前:直接访问可能不存在的数组键
$clean[$id] = $input[$id];

// 🛡️ 修复后:先检查键是否存在
if ( isset( $input[$id] ) ) {
    $clean[$id] = $input[$id];
}
// 🛡️ 修复前:对象属性可能未定义
$item_output = $args->before;

// 🛡️ 修复后:使用 null 合并运算符
$item_output = $args->before ?? '';

📋 优化结果

  • 消除 PHP 8 环境下的未定义数组键警告
  • 提升代码健壮性和兼容性
  • 主题完全支持 PHP 8.0 及以上版本


🚀 清理主题控制台日志输出

文件位置: assets/js/admin-toolbar-collapse.js · assets/js/shiroki-post-follow.js · page/p-signin.php · core/module/fun-role-manager.php · assets/js/boxmoe.js · core/module/fun-context-menu.php · assets/js/music-player/shiroki-music-error-handler.js

  • 问题描述:主题代码中存在大量 console.logconsole.warn 调试日志,在浏览器控制台中输出过多信息,影响调试体验和性能
  • 解决方案

- 清理调试日志:移除所有 console.log 调试输出,包括登录/注册流程、AJAX请求、按钮点击等日志
- 清理错误警告:移除图片懒加载失败、登录状态检查失败、用户面板操作失败等 console.warn 输出
- 保留注释掉的日志:对于已注释掉的 // console.log 保持原样,便于后续开发调试
- 保留错误处理逻辑:仅删除日志输出语句,保留原有的错误处理和降级逻辑

  • 涉及文件

- admin-toolbar-collapse.js:移除 jQuery 检查失败日志
- shiroki-post-follow.js:移除订阅功能所有调试日志
- p-signin.php:移除登录/注册流程 15 处调试日志
- fun-role-manager.php:移除角色管理脚本加载日志
- boxmoe.js:移除 17 处 console.warn 日志(登录状态、图片加载、点赞收藏等)
- fun-context-menu.php:移除图片复制失败日志
- shiroki-music-error-handler.js:移除音乐播放器错误日志

  • 效果说明:浏览器控制台不再输出主题相关的调试信息,保持控制台整洁,提升开发和用户体验

代码位置

  • 工具栏折叠:wp-content/themes/lolimeow-shiroki/assets/js/admin-toolbar-collapse.js
  • 文章订阅:wp-content/themes/lolimeow-shiroki/assets/js/shiroki-post-follow.js
  • 登录页面:wp-content/themes/lolimeow-shiroki/page/p-signin.php
  • 角色管理:wp-content/themes/lolimeow-shiroki/core/module/fun-role-manager.php
  • 核心JS:wp-content/themes/lolimeow-shiroki/assets/js/boxmoe.js
  • 右键菜单:wp-content/themes/lolimeow-shiroki/core/module/fun-context-menu.php
  • 音乐播放器:wp-content/themes/lolimeow-shiroki/assets/js/music-player/shiroki-music-error-handler.js

 
 

🖼️ 图片查看器移动端适配优化

文件位置: assets/css/image-viewer.css · assets/js/image-viewer.js

  • 问题描述:图片查看器在移动端打开时,图片显示过大超出屏幕范围,且操作按钮和关闭按钮在移动端显示不合适
  • 解决方案

- 图片尺寸限制:为移动端添加 max-width:90vwmax-height:70vh,确保图片自适应屏幕
- 关闭按钮适配:缩小按钮尺寸(40px→36px→32px),调整位置更靠近边缘
- 操作按钮栏优化:添加 flex-wrap:wrap 支持换行,调整间距和字体大小
- 多断点适配:针对 985px、768px、480px 三个断点分别优化

  • 效果说明:图片查看器在移动端现在能够正常显示,图片不会超出屏幕,操作按钮易于点击

代码位置

  • 样式定义:wp-content/themes/lolimeow-shiroki/assets/css/image-viewer.css
  • 交互逻辑:wp-content/themes/lolimeow-shiroki/assets/js/image-viewer.js

 
 

🏮 节日灯笼字体同步站点默认字体

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

  • 问题描述:节日灯笼的文字样式使用了硬编码的【黑体】字体,无法跟随站点字体设置统一变化
  • 解决方案:将 .deng-tfont-family 从硬编码的 黑体,Arial,Lucida Grande,Tahoma,sans-serif 修改为 inherit
  • 效果说明:灯笼文字现在会继承 body 的字体设置,而 body 字体由【字体设置】中的【站点默认字体】控制,实现了字体统一

修改内容

/* 修改前 */
.deng-t{font-family:黑体,Arial,Lucida Grande,Tahoma,sans-serif;font-size:3.2rem;color:#dc8f03;font-weight:700;line-height:85px;text-align:center}

/* 修改后 */
/* 🏮 节日灯笼文字样式 - 使用继承字体以同步站点默认字体设置 */
.deng-t{font-family:inherit;font-size:3.2rem;color:#dc8f03;font-weight:700;line-height:85px;text-align:center}

代码位置

  • 样式定义:wp-content/themes/lolimeow-shiroki/assets/css/style.css:4990

 
 

🐧 QQ邮箱头像显示修复

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

  • 问题描述:用户使用QQ邮箱注册后,头像显示的是默认头像而非QQ头像,原因是QQ头像API格式已更新,旧版API在某些情况下无法正常获取头像
  • 解决方案

- 更新QQ头像API格式:将旧的API格式 headimg_dl?dst_uin=QQ号&spec=尺寸 更新为新的API格式 g?b=qq&nk=QQ号&s=尺寸
- 新增专用函数:添加 boxmoe_get_qq_avatar_url() 函数专门处理QQ头像URL生成,支持动态尺寸调整(40/100/200/640)
- 增强邮箱检测逻辑:添加空值检查 !empty($email)!empty($qq),使用 stripos 进行不区分大小写的邮箱后缀检测
- 优化头像获取优先级:确保QQ头像优先级高于WordPress默认头像,直接返回QQ头像URL不再检查WordPress原生头像

  • 效果说明:QQ邮箱注册用户现在能正确显示QQ头像,头像加载失败时自动回退到默认头像

代码位置

  • 头像处理逻辑:wp-content/themes/lolimeow-shiroki/core/module/fun-gravatar.php

 
 

📝 文章编辑器工具栏按钮优化

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

  • 功能描述:在文章编辑器的工具栏上新增【换行】按钮,并优化【分割线】按钮的插入格式,让插入的内容在编辑器中更加清晰易读
  • 新增功能

- 【换行】按钮:在 Quicktags 文本编辑器和 TinyMCE 可视化编辑器的工具栏上新增【换行】按钮
- 点击后在光标位置插入   换行符,前后自动添加换行,让换行符单独占一行显示

  • 优化内容

- 【分割线】按钮:修改插入格式,从

改为 \n
\n
,让分割线在编辑器中单独占一行
- 【换行】按钮:修改插入格式,从   改为 \n \n,让换行符在编辑器中单独占一行

  • 实现方案

- Quicktags 文本编辑器:在 quicktags-shiroki-divider.js 中动态创建按钮并添加到工具栏,支持 DOM 变化监听确保动态加载时也能生效
- TinyMCE 可视化编辑器:在 tinymce-shiroki-divider.js 中注册插件,通过 editor.ui.registry.addButton 添加按钮
- PHP 注册:在 fun-admin.php 中通过 mce_external_pluginsmce_buttons 过滤器注册插件和按钮

  • 效果说明:编辑文章时,点击【换行】或【分割线】按钮,插入的内容会在编辑器中单独占一行显示,避免多个标签连在一起难以阅读的问题

代码位置

  • Quicktags 脚本:wp-content/themes/lolimeow-shiroki/assets/js/quicktags-shiroki-divider.js
  • TinyMCE 脚本:wp-content/themes/lolimeow-shiroki/assets/js/tinymce-shiroki-divider.js
  • PHP 注册:wp-content/themes/lolimeow-shiroki/core/module/fun-admin.php

 
 

🎬 文章编辑器全屏按钮位置优化

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

  • 问题描述:WordPress 后台文章编辑器的 TinyMCE 可视化编辑器中,【专注写作模式(全屏)】按钮位于工具栏第三行的最右侧,盖住了【H4标题】等工具按钮,影响正常使用

代码位置

  • 样式定义:wp-content/themes/lolimeow-shiroki/assets/css/admin/admin-shiroki.css
  • PHP 加载:wp-content/themes/lolimeow-shiroki/core/module/fun-admin.php

 
 

🌓 主题切换按钮图标优化

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

  • 功能描述:优化导航栏主题切换按钮的图标显示逻辑,根据当前主题显示对应的切换目标图标,提升用户体验
  • 优化内容

- 图标显示逻辑调整:亮色模式显示月亮图标(提示可切换到暗色),暗色模式显示太阳图标(提示可切换到亮色)
- 太阳图标:带有旋转光芒动画的 SVG 图标,光芒持续旋转
- 月亮图标:带有星星闪烁动画的 SVG 图标,4颗星星循环渐显渐隐

  • 实现方案

- PHP模板:在 header.php 的主题切换按钮中添加两个 SVG 图标,分别使用 theme-icon-suntheme-icon-moon 类名
- CSS样式:在 style.css 中添加图标显示控制样式,通过 [data-bs-theme] 属性选择器控制图标显示/隐藏
- JS功能:在 boxmoe.jsupdateActiveState 函数中添加图标切换逻辑,根据当前主题动态设置 display 属性

  • 效果说明:用户当前处于亮色模式时,按钮显示月亮图标提示可切换到暗色;处于暗色模式时,按钮显示太阳图标提示可切换到亮色,图标带有流畅的动画效果

代码位置

  • 按钮模板:wp-content/themes/lolimeow-shiroki/header.php
  • 样式定义:wp-content/themes/lolimeow-shiroki/assets/css/style.css
  • JS功能:wp-content/themes/lolimeow-shiroki/assets/js/boxmoe.js

 
 

📦 代码块折叠功能视觉优化

文件位置: assets/css/style.css · assets/js/code-block-collapse.js

  • 问题描述:代码块折叠功能的视觉效果不够美观,展开/收起按钮样式单一,且展开后按钮位置不合理会盖住代码或显示在代码块外部
  • 优化内容

- ☀️ 亮色模式按钮样式:将原本的深色渐变改为白色高斯模糊渐变色,使用 linear-gradient(to bottom, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.7)) 配合 backdrop-filter: blur(8px) 实现毛玻璃效果
- 🌆 暗色模式按钮样式:将原本的白色半透明改为灰色高斯模糊渐变色,使用 linear-gradient(to bottom, rgba(50, 50, 50, 0), rgba(50, 50, 50, 0.8)) 配合 backdrop-filter: blur(8px)
- 📖 展开状态按钮位置:优化展开后【收起代码】按钮的位置,使其显示在代码块底部中央,使用 :has(.code-block-expanded) 选择器为 wrapper 添加 padding-bottom: 45px 避免按钮盖住代码
- ✨ 悬停效果增强:悬停时增加模糊度到 blur(12px),提升交互反馈

  • 实现方案

- CSS选择器优化:使用 .code-block-expanded ~ .code-block-collapse-toggle 控制展开状态下的按钮样式
- :has()伪类应用:使用 .code-block-collapse-wrapper:has(.code-block-expanded) 为包含展开代码块的容器添加底部内边距
- 渐变与模糊结合:通过 linear-gradientbackdrop-filter 组合实现美观的毛玻璃遮罩效果

  • 效果说明:代码块折叠按钮现在拥有更美观的毛玻璃视觉效果,亮色模式下为白色渐变,暗色模式下为灰色渐变,展开后按钮显示在代码块底部中央且不会遮挡代码内容

代码位置

  • 样式定义:wp-content/themes/lolimeow-shiroki/assets/css/style.css:4869-4965
  • JS功能:wp-content/themes/lolimeow-shiroki/assets/js/code-block-collapse.js

 
 

📝 底部栏版权文本优化

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

  • 功能描述:将底部栏的 Copyright 文本改为中文【版权©】,使版权信息更符合中文网站展示习惯
  • 修改内容

- 原文本'Copyright'
- 新文本'版权©'
- 修改位置:第458行

  • 实现方案

- 在 boxmoe_footer() 函数中,修改底部版权信息的输出逻辑
- 当 boxmoe_footer_copyright_hidden 选项未开启时,显示【版权©】而不是【Copyright】
- 同时移除了重复的 © 符号,因为【版权©】已经包含了版权符号

  • 代码变更
/* 📝 修改前 */
<span><?php echo get_boxmoe('boxmoe_footer_copyright_hidden') ? '' : 'Copyright'; ?> © <?php echo date('Y'); ?> ...</span>

/* 📝 修改后 */
<span><?php echo get_boxmoe('boxmoe_footer_copyright_hidden') ? '' : '版权©'; ?> <?php echo date('Y'); ?> ...</span>
  • 效果说明:底部栏版权信息现在显示为【版权© 2025 网站名称】,更加符合中文用户的阅读习惯

 
 
 
 

🎲 侧边栏随机文章小部件布局优化

文件位置: core/widgets/widget-random-posts.phpassets/css/style.css

  • 问题描述:侧边栏随机文章小部件中,【阅读全文】链接与日期在同一行显示,导致布局拥挤且不够美观
  • 修改内容

- widget-random-posts.php 第55-67行:重构日期、摘要和阅读链接的HTML结构
- style.css 第2796-2799行:新增 .post-meta 容器样式和 .read-more 链接样式

  • 实现方案

- 将日期、摘要和【阅读全文】链接包裹在一个新的

上一次更新已经跑远惹✨ 计算中...
(‾◡◝) 本内容里的一些消息,可能已经跟不上时间啦~
感谢您的支持
微信赞赏

微信扫一扫

支付宝赞赏

支付宝扫一扫



评论(2)

查看评论列表
评论头像
小笨蛋 2026年01月13日
赞!
评论头像
小笨蛋 2026年01月13日
不错不错ツ

发表评论

表情 颜文字
插入代码

北京时间 (Asia/Shanghai)

后退
前进
刷新
复制
粘贴
全选
删除
返回首页
0%
目录
顶部
底部
📖 文章导读