0%
boxmoe_header_banner_img

加载中

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


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

🐛 修复函数未定义错误

错误信息
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 时,在

    标签中添加 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日
不错不错ツ

发表评论

表情 颜文字
插入代码

北京时间 (Asia/Shanghai)

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