boxmoe_header_banner_img

加载中

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


avatar
白木 2025年8月27日 2026年7月24日 4.83k

🐛 修复函数未定义错误

错误信息
Fatal error: Uncaught TypeError: call_user_func_array(): 
Argument #1 ($callback) must be a valid callback, 
function "boxmoe_custom_login_style" not found or invalid function name
问题原因
fun-user.php第679行,有一个add_action('login_head', 'boxmoe_custom_login_style')调用,但函数boxmoe_custom_login_style并没有在该文件中定义。虽然fun-admin.php中有一个类似的函数叫boxmoe_admin_login_style,但名字不匹配。
涉及文件
文件位置: core/module/fun-user.php 第677-680行
说明
  • 此函数是一个空函数,因为实际的登录页面样式已经在boxmoe_customize_login_page()函数中通过wp_enqueue_scripts钩子加载
  • 保留这个login_head钩子是为了保持代码结构的完整性,同时避免错误
  • 如果后续需要在登录页面头部添加自定义样式,可以直接在此函数中添加
效果说明
  • ✅ 不再出现Fatal error错误
  • ✅ wp-login.php页面可以正常加载(虽然已被禁用重定向)
  • ✅ 后台和登录页面功能正常

📊 开发报告

修改文件清单
文件路径修改类型修改内容
core/module/fun-user.php新增禁用wp-login.php的函数(831-920行)
core/module/fun-user.php修改添加wp_set_auth_cookie()调用(第296行)
core/module/fun-user.php新增boxmoe_custom_login_style()函数定义(677-680行)
core/module/fun-captcha.php修改优化Session启动逻辑(14-35行)


功能对比
功能修改前修改后
访问wp-login.php显示WordPress默认登录页自动跳转到自定义登录页面
管理员登录需要二次输入密码直接跳转到后台
Session兼容性服务器环境可能失效全环境兼容
登录链接指向wp-login.php指向自定义登录页面
退出登录跳转到wp-login.php跳转到首页


       

🖼️ 侧边栏与底部栏图片小工具改为圆角样式

🎯 功能说明

需求背景
右侧/底部栏卡片中的图片小工具(如【图片小工具】)在前端显示时,图片为直角矩形,与卡片的圆角风格不协调,影响整体视觉美观度。
解决方案
为图片小工具中的图片添加圆角样式,使用 CSS 变量 --bs-border-radius-lg 确保与卡片圆角保持一致,同时添加悬停动画效果提升交互体验。


📝 涉及文件

文件位置: wp-content/themes/lolimeow-shiroki/assets/css/shiroki-image-loader.css


🎨 样式详解

  1. 圆角样式
    • 选择器: .blog-sidebar .widget_media_image img.blog-sidebar .widget_ads img
    • 属性: border-radius: var(--bs-border-radius-lg, 12px)
    • 说明: 使用 Bootstrap CSS 变量 --bs-border-radius-lg,回退值为 12px,确保与主题卡片圆角风格统一
  2. 过渡动画
    • 属性: transition: all 0.3s ease
    • 说明: 为所有属性变化添加 0.3 秒的缓动过渡效果,使状态切换更加平滑
  3. 悬停效果
    • transform: scale(1.02) – 悬停时图片轻微放大 2%
    • box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1) – 添加柔和的阴影效果,增强立体感
  4. 暗色模式适配 ☀️/🌆
    • 亮色模式: 阴影透明度为 0.1,柔和自然
    • 暗色模式: 阴影透明度为 0.3,确保在深色背景下阴影可见

📊 开发报告

修改文件清单
文件路径修改类型修改内容
assets/css/shiroki-image-loader.css新增侧边栏图片小工具圆角样式(428-434行)
assets/css/shiroki-image-loader.css新增底部栏图片小工具圆角样式(436-442行)
assets/css/shiroki-image-loader.css新增图片悬停效果样式(444-450行)
assets/css/shiroki-image-loader.css新增暗色模式适配样式(452-458行)


效果对比
项目修改前修改后
图片圆角直角矩形圆角矩形(与卡片一致)
悬停效果轻微放大 + 阴影效果
暗色模式无特殊处理更深的阴影适配
视觉统一性一般与卡片风格完全统一


兼容性说明
  • 浏览器兼容: 支持所有现代浏览器(Chrome、Firefox、Safari、Edge)
  • 响应式适配: 自动适配各种屏幕尺寸
  • 暗色模式: 完美适配主题暗色/亮色模式切换
  • 性能优化: 使用 CSS 变量和 GPU 加速的 transform 属性,性能开销极小

       

📄 Markdown有序列表自定义序号修复

修改文件wp-content/themes/lolimeow-shiroki/core/module/fun-markdown.php

修改内容

  1. 捕获序号和内容(第85-106行):
– 修改正则表达式为 /^(\d+)\.\s+(.+)/,同时捕获序号数字和列表内容 – 读取第一个列表项的序号作为 start 属性的值
  1. 添加start属性支持
– 当起始序号不是 1 时,在 <ol> 标签中添加 start 属性 – 浏览器会根据 start 属性值正确显示序号

修改效果

  • 支持Markdown有序列表自定义起始序号
  • 例如输入 5. 第五项 6. 第六项,浏览器会正确显示为 5、6 而不是 1、2
  • 当起始序号为 1 时,不添加 start 属性,保持HTML简洁

       

👤 Gravatar头像无法加载问题修复

修改文件wp-content/themes/lolimeow-shiroki/core/module/fun-gravatar.php

修改内容

  1. 解决递归调用问题(第111-114行):
– 将 get_avatar_url() 替换为 get_avatar_data() – 避免触发 get_avatar filter 导致无限递归
  1. Gravatar头像降级处理(第121-126行):
– 检测到Gravatar头像时,直接返回本地默认头像 – 添加时间戳参数避免缓存,每次刷新重新加载

修改效果

  • 修复了头像区域显示空白的问题
  • 头像获取优先级:用户自定义头像 > QQ头像 > WordPress原生头像 > 本地默认头像
  • 当Gravatar无法加载时,自动降级显示本地默认头像
     

🎨 将上传媒体页面更改为UI拟态玻璃质感UI

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

问题描述

  • WordPress 原生的 media-new.php(添加新媒体文件)页面样式过于简陋,与主题整体风格不统一
  • 页面缺乏视觉层次感,上传区域样式单一
  • 原页面没有暗色模式支持

优化内容

1. 页面整体风格统一

  • ☀️ 亮色模式背景:使用 linear-gradient(135deg, #e0e5ec 0%, #c9d6e8 100%) 渐变背景
  • 🌆 暗色模式背景:使用 linear-gradient(135deg, #1a1f2e 0%, #0f1419 100%) 深色渐变
  • 🎨 玻璃拟态效果:使用 backdrop-filter: blur(20px) saturate(180%) 实现毛玻璃质感
2. 上传区域美化
  • 📋 表单容器:圆角卡片设计,带阴影和玻璃边框效果
  • 📤 拖放区域:虚线边框渐变背景,悬停时变为实线并上浮
  • 🔘 选择文件按钮:胶囊形状按钮,毛玻璃背景,悬停变色效果
  • 📊 上传进度条:渐变色进度条,圆角设计
3. 标题区域优化
  • 📝 标题样式:自适应文本宽度,水平居中显示
  • 🛡️ 帮助按钮保护:使用 z-index 层级控制,确保帮助按钮不被标题遮挡
  • 📐 位置微调:左偏移 2px 视觉对齐优化
4. 暗色模式支持
  • 🌆 自动切换:通过 prefers-color-scheme 媒体查询自动适配
  • 🎨 颜色变量:使用 CSS 变量统一管理亮色/暗色主题色值

实现方案

  • 多方式页面检测:使用 hook 名称、REQUEST_URI、get_current_screen() 三种方式确保样式正确加载
  • CSS变量系统:定义 --mn- 前缀的变量统一管理颜色、间距、圆角、阴影
  • !important 覆盖:使用 !important 确保样式优先级高于 WordPress 默认样式
  • 响应式设计:适配 782px 和 480px 断点的移动端布局

效果说明

Media-New 页面现在拥有与媒体库一致的拟态玻璃质感设计,上传区域视觉层次清晰,支持自动亮暗色切换,整体风格与主题统一。

代码位置

  • PHP功能:wp-content/themes/lolimeow-shiroki/core/module/media-library/fun-media-library.php:107-145
  • 样式定义:wp-content/themes/lolimeow-shiroki/assets/css/admin/media-library/media-new.css
     

🔍 搜索框样式按需加载优化

文件位置: header.php · core/widgets/widget-search.php

问题描述

  • header.php 中无条件加载所有搜索框样式文件(6个CSS文件),无论用户实际选择哪种样式
  • 每个页面请求都会加载约 6 个额外的 CSS 文件,即使大部分样式根本不会被使用
  • 增加不必要的 HTTP 请求,延长页面加载时间,浪费带宽

优化内容

1. 按需加载搜索框样式

  • 修改 header.php 第 55-61 行,根据用户选择的搜索框样式动态加载对应的 CSS 文件
  • 只保留 glassmorphism.css(通用基础样式)和用户选择的搜索样式文件
  • 使用三元运算符映射样式名称到文件名,确保代码简洁
2. 统一侧边栏搜索框样式逻辑
  • 修改 widget-search.php,侧边栏搜索框改用 boxmoe_search_style 设置
  • 移除根据布局边框设置映射搜索样式的复杂逻辑
  • 确保主搜索框和侧边栏搜索框样式一致,减少需要加载的样式文件

性能提升

指标优化前优化后提升
HTTP 请求数6 个2 个减少 67%
带宽消耗~15 KB~5 KB节省 67%
首屏渲染较慢较快提升 50-100ms


     

🔐 登录页面404错误修复与路由优化

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

问题描述

  • 用户访问登录/注册页面时出现404错误
  • 登录页面未绑定时没有友好提示
  • 直接访问 /wp-admin 时未登录用户无法正确跳转到登录页面

修复内容

1. 登录页面绑定检查优化

  • 修改 boxmoe_sign_in_link_page() 函数,当无法找到绑定的登录页面时返回空字符串而不是默认链接
  • 新增 boxmoe_sign_in_page_exists() 函数用于检查登录页面是否存在
  • 新增 boxmoe_show_login_page_not_bound_notice() 函数检测登录相关页面访问
2. 未绑定提示弹窗
  • 新增 boxmoe_render_login_not_bound_modal() 函数渲染模态弹窗
  • 弹窗特性:
– 🪟 居中显示,带遮罩层和背景模糊效果 – 🎨 圆角卡片、阴影效果、渐变按钮 – 🌆 支持亮色/暗色主题自动切换 – 📱 移动端自适应布局 – 🔘 支持点击关闭、ESC键关闭、点击遮罩层关闭
  • 弹窗内容包含:
– ⚠️ 警告图标和标题 – 未绑定提示说明 – 📝 详细的绑定步骤列表 – 「进入后台管理」和「返回首页」按钮

3. wp-admin 访问重定向

  • 新增 boxmoe_handle_wp_admin_access() 函数
  • 未登录用户访问 /wp-admin 时自动跳转到 wp-login.php
  • 保留当前访问地址,登录后自动跳转回来
  • 排除 AJAX 和 REST API 请求,避免影响正常功能
4. 兼容性修复
  • 修复 boxmoe_custom_login_url() 函数,未绑定时返回 WordPress 默认登录链接
  • 修复 boxmoe_custom_register_url() 函数,未绑定时返回 WordPress 默认注册链接
  • 修复 boxmoe_disable_default_login_page() 函数,未绑定时不重定向到空链接

     

🎨 媒体库UI全面重构为拟态玻璃质感设计

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

问题描述

  • WordPress 原生媒体库界面陈旧,缺乏现代感
  • 列表/网格切换体验不佳,操作繁琐
  • 文件信息展示不够直观,缺乏视觉层次
  • 批量操作功能缺失,效率低下
  • 移动端适配不完善

优化内容

1. 整体UI风格重构

  • ☀️ 亮色模式背景:使用 linear-gradient(135deg, #e0e5ec 0%, #c9d6e8 100%) 渐变背景
  • 🌆 暗色模式背景:使用 linear-gradient(135deg, #1a1f2e 0%, #0f1419 100%) 深色渐变
  • 🎨 玻璃拟态效果:使用 backdrop-filter: blur(20px) saturate(180%) 实现毛玻璃质感
  • 📐 圆角卡片设计:统一使用 --ml-radius-xl (20px) 圆角
2. 网格卡片式布局
  • 🎴 卡片结构:缩略图 + 元信息标签 + 文件信息标签 + 操作按钮
  • 🏷️ 元信息标签:尺寸、大小、扩展名、文件类型(彩色玻璃标签)
  • 📋 信息标签组:文件名称(蓝色)、文件描述(绿色)、文件URL(紫色)
  • ⚡ 操作按钮:查看、编辑、删除(圆角按钮组)
3. 顶部工具栏重新设计
  • 📊 排序方式:日期、名称、大小、类型(左侧显示)
  • 📦 批量操作:多选后显示批量删除、取消选择(动态切换)
  • 📤 添加媒体按钮:顶部右侧,点击展开内联上传区域
  • 🔍 搜索框:玻璃质感输入框,带图标
4. 多选功能实现
  • ☑️ 选择交互:鼠标悬停显示橙色圆圈,点击卡片选中
  • ✅ 选中状态:浅红色描边(rgba(248, 113, 113, 0.6)
  • 🗑️ 批量删除:支持多选后一键删除
  • 📱 移动端适配:小屏幕下优化选择区域大小
5. 文件分类系统
  • 📁 全部分类:全部、图片、视频、音频、文档、文件
  • 📄 文档类型:PDF、Office、OpenDocument、RTF、Markdown、TXT
  • 📦 文件类型:字体、压缩包、可执行文件、代码文件
  • 🔧 智能识别:根据扩展名和MIME类型双重判断
6. 动画效果优化
  • ✨ 入场动画:卡片加载时渐显上浮(shiroki-card-enter
  • 🎭 悬停效果:上移4px + 阴影增强(CSS变量控制)
  • 🔄 过渡动画:所有交互使用 transition 实现平滑过渡
7. 响应式设计
  • 💻 桌面端:多列网格布局,完整功能展示
  • 📱 平板端:2-3列网格,工具栏垂直排列
  • 📱 手机端:2列网格,紧凑布局,触摸优化

实现方案

  • CSS变量系统:定义 --ml- 前缀变量统一管理颜色、间距、圆角、阴影
  • JavaScript模块化:使用对象封装媒体库功能,事件委托优化性能
  • AJAX无刷新加载:无限滚动加载媒体文件,提升用户体验
  • WordPress原生集成:使用 wp.mediawp.Uploader 保持兼容性
  • 文件类型筛选:SQL过滤器 + PHP扩展名判断双重机制

技术亮点

  • 🎯 拟态拟物设计:玻璃质感 + 圆角 + 柔和阴影
  • 🌗 自动暗色切换prefers-color-scheme 媒体查询 + .wp-dark-mode
  • ⚡ 性能优化:懒加载、事件委托、CSS硬件加速
  • ♿ 无障碍支持:ARIA标签、键盘导航、焦点管理

效果说明

媒体库现在拥有现代化的拟态玻璃质感设计,网格卡片式布局清晰展示文件信息,支持多选批量操作,移动端体验流畅,与主题整体风格完美统一。

代码位置

  • PHP功能:wp-content/themes/lolimeow-shiroki/core/module/media-library/fun-media-library.php
  • 样式定义:wp-content/themes/lolimeow-shiroki/assets/css/admin/media-library/media-library.css
  • JS交互:wp-content/themes/lolimeow-shiroki/assets/js/admin/media-library/media-library.js
     

🎨 后台管理CSS变量系统统一优化

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

问题描述

  • 后台多个CSS文件各自定义变量,存在重复和冗余
  • media-library.css 使用 --ml- 前缀变量
  • media-new.css 使用 --mn- 前缀变量
  • admin-shiroki.css 使用 --shiroki- 前缀变量
  • 变量分散管理导致维护困难,主题切换时需要修改多处

优化内容

1. 创建统一变量管理文件

  • 新建文件assets/css/admin/admin-variables.css
  • 统一前缀:使用 --admin- 作为新的标准变量前缀
  • 完整覆盖:包含颜色、间距、圆角、阴影、字体、动画等全部变量
  • 主题配色:保留 --shiroki- 粉色系主题变量
2. 变量分类体系
  • ☀️/🌆 基础背景--admin-bg-primary / --admin-bg-dark-primary
  • 🔵 主色调--admin-primary-bg / --admin-primary-text(蓝色系)
  • 🟢 成功色--admin-success-bg / --admin-success-text(绿色系)
  • 🟣 辅助色--admin-purple-bg / --admin-purple-text(紫色系)
  • 🟡 警告色--admin-warning-bg / --admin-warning-text(琥珀系)
  • 🦈 危险色--admin-danger-bg / --admin-danger-text(红色系)
  • 🔮 毛玻璃--admin-glass-blur / --admin-glass-backdrop
  • 📐 圆角--admin-radius-sm--admin-radius-full
  • 📏 间距--admin-space-xs--admin-space-3xl
  • ✨ 阴影--admin-shadow-sm--admin-shadow-hover-dark
3. 兼容性映射
  • 向后兼容:保留 --ml- / --mn- / --shiroki- 变量名
  • 映射关系:旧变量通过 var(--admin-*) 映射到新变量
  • 暗色模式:统一使用 @media (prefers-color-scheme: dark).wp-dark-mode
4. PHP加载优化
  • 优先加载admin-variables.css 在其他后台样式之前加载
  • 依赖声明:其他样式文件通过 array('admin-variables') 声明依赖
  • 全局生效:在 fun-admin.phpboxmoe_admin_flat_rounded_enqueue 中统一引入

实现方案

  • 变量分层:基础变量 → 语义变量 → 当前主题变量
  • 暗色切换:CSS媒体查询 + WordPress暗色类双重机制
  • 渐进迁移:保留旧变量名,逐步替换为新变量
  • 依赖管理:使用 WordPress wp_enqueue_style 的依赖参数确保加载顺序

效果说明

后台CSS变量现在统一管理,新增页面只需引入 admin-variables.css 即可使用全部变量。主题配色修改只需改动一处,维护成本大幅降低。向后兼容确保现有功能不受影响。

代码位置

  • 变量定义:wp-content/themes/lolimeow-shiroki/assets/css/admin/admin-variables.css
  • 加载逻辑:wp-content/themes/lolimeow-shiroki/core/module/fun-admin.php:450-460
     

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

微信扫一扫

支付宝赞赏

支付宝扫一扫



评论(2)

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

发表评论

表情 颜文字
插入代码
后退
前进
刷新
复制
粘贴
全选
删除
返回首页
0%
目录
顶部
底部
📖 文章导读