0%
boxmoe_header_banner_img

加载中

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


avatar
白木 2025年8月27日 2026年2月13日 1.63k

📄 修复语法在前端不渲染

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

  • 功能描述: 修复了文章分页语法在前端不显示的问题,添加了分页链接样式
  • 实现要点:

- 在文章内容后添加了 wp_link_pages() 函数,用于渲染分页链接
- 自定义了分页链接的样式,包括普通页码、当前页码和悬停效果
- 适配了亮色和暗色模式

  • 代码寻找:

- 分页函数添加:page/template/blog-single.php:61-68
- 样式定义:assets/css/style.css:51-165

使用步骤:

  1. 在文章编辑页使用 < !--nextpage--> 标签分割文章
  2. 发布后,前端文章页会自动显示分页导航

 
 
 
 

🎭 修复飞来模块语法渲染问题

文件位置: functions.php · assets/js/boxmoe.js

  • 功能描述: 修复了

    语法在前端无法渲染的问题

  • 实现要点:

- 加载了 Animate.cssWOW.js 库,提供动画支持
- 初始化了 WOW.js,启用滚动触发动画
- 确保动画效果在页面加载时自动初始化

  • 代码寻找:

- 库加载:functions.php:79-94
- 初始化函数:assets/js/boxmoe.js:1285-1290
- 初始化调用:assets/js/boxmoe.js:2500

使用步骤:

  1. 在文章中插入 < div class="link-title wow rollIn">内容段

语法

  • 发布后,前端会显示滚动触发的动画效果
  •  
     
     
     

    🎨 文章页分页按钮美化

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

    • 功能描述: 美化了文章页面的分页按钮,使其与主题风格一致
    • 实现要点:

    - 移除了额外的 span 标签,简化了HTML结构
    - 采用了简洁的紫色主题设计
    - 为普通页码、当前页码和悬停效果添加了独立样式
    - 确保样式只影响分页导航,不影响其他元素

    • 代码寻找:

    - 分页函数优化:page/template/blog-single.php:61-68
    - 样式定义:assets/css/style.css:51-214

    使用步骤:

    1. 在文章编辑页使用 < !--nextpage--> 标签分割文章
    2. 发布后,前端文章页会显示美化后的分页导航

    优化特性:

    • 普通页码:白色背景 + 浅灰色边框 + 灰色文字
    • 当前页码:紫色背景 + 紫色边框 + 纯白色文字
    • 悬停效果:紫色背景 + 白色文字 + 轻微上浮和阴影
    • 适配亮色和暗色模式
    • 无多重颜色层,简洁设计

     
     
     
     

    🖼️ 修复Markdown编辑器图片按钮功能

    文件位置: assets/js/markdown-editor.js

    • 功能描述: 修复了Markdown编辑器中添加图片的问题,使其像原版主题编辑器一样以图片形式呈现
    • 实现要点:

    - 将图片按钮的点击事件从触发自定义图片弹窗,改为直接插入标准Markdown图片语法 ! alt
    - 确保用户点击图片按钮时,能直接在编辑器中插入正确的Markdown图片语法
    - 保持与原版主题编辑器一致的图片处理方式

    • 代码寻找:

    - 图片按钮事件修改:assets/js/markdown-editor.js:36

     
     
     
     

    🔒 WordPress登录页面样式同步与修复

    文件位置: functions.php

    • 功能描述: 将WordPress默认登录页面样式同步为用户登录页面样式,并修复登录后无法重定向的问题
    • 实现要点:

    - 完全替换WordPress默认登录页面的HTML结构和CSS样式
    - 采用玻璃拟态卡片设计、浮动标签输入框、按钮扫光动画等美化效果
    - 确保只有GET请求显示自定义页面,POST请求由WordPress正常处理登录逻辑
    - 添加测试cookie设置,确保登录成功后能正确重定向
    - 实现登录错误信息显示,支持多种错误类型
    - 保留登录失败时的用户名,提升用户体验
    - 适配亮色和暗色模式
    - 支持从wp-admin跳转登录后自动返回原页面

    • 代码寻找:

    - 自定义登录页面函数:functions.php:604-1059
    - 请求方法判断:functions.php:612-613
    - 测试cookie设置:functions.php:619-620
    - 错误信息处理:functions.php:622-646
    - 登录表单优化:functions.php:916-924

     
     
     
     

    🖼️ 修复自定义背景装饰图与SVG文件支持

    文件位置: header.php · functions.php · .htaccess · core/panel/includes/class-options-media-uploader.php · core/panel/js/media-uploader.js

    • 功能描述: 修复了自定义背景装饰图无法加载的问题,增强了SVG文件支持,确保SVG资源能正常访问
    • 实现要点:

    - 修复背景图路径: 将错误的相对路径 ../assets/images/background.svg 改为正确的绝对路径 /assets/images/background.svg
    - 增强SVG支持: 添加了完整的SVG文件支持代码,包括MIME类型配置、安全检查修复、HTTP头设置等
    - 优化媒体上传器: 修复了媒体上传器中SVG文件的识别和预览问题
    - 添加URL有效性检查: 当外部SVG文件不可用时,自动回退到本地默认SVG文件
    - 配置服务器支持: 在.htaccess中添加了明确的SVG MIME类型和直接访问规则

    • 代码寻找:

    - 背景图路径修复:header.php:23
    - SVG支持代码:functions.php:69-142
    - .htaccess配置:.htaccess:2-13
    - 媒体上传器修复:class-options-media-uploader.php:87 · media-uploader.js:43
    - URL有效性检查:header.php:26-33

    使用步骤:

    1. 后台 → 外观 → 盒子萌主题设置 → 基础设置 → 自定义背景装饰图
    2. 点击“上传”或“替换”按钮上传自定义背景图(支持SVG格式)
    3. 保存设置后,前台背景装饰图将正常显示
    4. 若使用外部SVG文件且不可访问,系统会自动回退到本地默认SVG文件

    优化特性:

    • 支持本地和外部SVG文件
    • 外部SVG文件404时自动回退到本地默认文件
    • 媒体上传器中SVG文件可正确识别和预览
    • 服务器级别的SVG文件支持配置
    • 完善的错误处理机制
    • 适配亮色和暗色模式

     
     
     
     

    🔧 修复主题安装新版本时新建文件夹的问题

    文件位置: style.css

    问题描述

    每次安装新版本主题时,WordPress会在服务器中新建文件夹,而不是替换原有主题,导致服务器中出现多个主题文件夹。

    修复原因

    主题的style.css文件缺少Text Domain声明,这是WordPress识别主题唯一性的重要标志。由于缺少这个标识,每次安装新版本主题时,WordPress无法识别这是同一个主题的更新,而是将其视为一个全新的主题,因此会在服务器中新建文件夹。

    修复内容

    style.css文件中添加了Text Domain: lolimeow-shiroki声明,确保WordPress能够正确识别主题的唯一性。

    修复原理

    WordPress通过主题的Text Domain来识别主题的唯一性。当安装主题时,WordPress会检查是否已经存在具有相同Text Domain的主题,如果存在,则会替换原有主题文件;如果不存在,则会新建文件夹。

    修复前后对比

    • 修复前: 安装新版本主题时,服务器中会出现多个主题文件夹,如lolimeow-shirokilolimeow-shiroki-1lolimeow-shiroki-2
    • 修复后: 安装新版本主题时,WordPress会直接替换原有主题文件夹中的文件,不会新建文件夹

    技术要点

    • Text Domain: 主题的唯一标识符,必须在style.css文件中声明
    • WordPress主题安装机制: 通过Text Domain判断是否为同一主题
    • 主题更新流程: 保持Text Domain不变,只更新主题版本号

    修复代码:

    Text Domain: lolimeow-shiroki
    

     
     
     
     

    📊 修复用户信息小部件文章和评论数量显示问题

    文件位置: core/widgets/widget-currentuser.php · core/widgets/widget-userinfo.php

    • 功能描述: 修复了用户信息小部件的文章数量和评论数量显示问题,确保显示的数据与指定用户或当前登录用户一致
    • 实现要点:

    - 当前用户信息小部件: 显示当前登录用户的文章数量和评论数量
    - 自定义用户信息小部件: 当设置了用户ID时显示该用户的真实数据,否则保持原有逻辑
    - 统一数据格式化: 为文章数量和评论数量添加了format_number()格式化处理
    - 使用WordPress原生函数: 采用count_user_posts()get_comments()函数获取准确的用户数据

    • 代码寻找:

    - 当前用户信息小部件修复:core/widgets/widget-currentuser.php:120-139
    - 自定义用户信息小部件修复:core/widgets/widget-userinfo.php:140-159
    - 格式化函数:两个文件中均为format_number()方法

    修复前后对比:

    • 修复前:

    - 当前用户信息小部件:显示全站文章总数和管理员评论数量
    - 自定义用户信息小部件:显示全站文章总数和管理员评论数量

    • 修复后:

    - 当前用户信息小部件:显示当前登录用户的文章数量和评论数量
    - 自定义用户信息小部件:
    - 当设置了用户ID时,显示该用户的文章数量和评论数量
    - 当未设置用户ID时,保持显示全站文章总数和管理员评论数量

    技术要点:

    • count_user_posts(): WordPress原生函数,用于获取指定用户的文章数量
    • get_comments(): WordPress原生函数,用于获取评论数据,支持按用户ID筛选
    • 条件判断: 根据是否设置用户ID动态切换数据来源
    • 数据格式化: 统一使用format_number()函数,确保数据显示格式一致

    使用步骤:
    无需特殊操作,修复后小部件会自动显示正确的数据。

    1. 当前用户信息小部件: 登录后自动显示当前用户的文章和评论数量
    2. 自定义用户信息小部件:

    - 在后台小部件设置中填写用户ID
    - 保存后,前端会显示该用户的真实文章和评论数量

    优化特性:

    • 数据准确:显示的文章和评论数量与用户实际数据一致
    • 动态适应:根据配置自动切换数据来源
    • 格式统一:所有数据都经过格式化处理,显示效果一致
    • 保持兼容:未设置用户ID时保持原有逻辑不变

     
     
     
     

    🎯 修复Banner欢迎语重复显示bug

    文件位置: assets/js/boxmoe.js

    • 功能描述: 修复了Banner欢迎语在某些情况下重复显示的问题,确保打字动画只执行一次
    • 实现要点:

    - 添加执行状态标记: 新增全局变量bannerAnimationRunning,用于标记动画是否正在运行
    - 防止重复执行: 在动画初始化前检查状态,避免动画被多次触发
    - 状态重置机制: 当动画初始化失败时,重置状态标记,确保容错性
    - 保持原有功能: 不影响动画的原有效果和逻辑

    • 代码寻找:

    - 状态标记定义:assets/js/boxmoe.js:2627
    - 状态检查逻辑:assets/js/boxmoe.js:2630-2631
    - 容错处理:assets/js/boxmoe.js:2634-2642

    修复前后对比:

    • 修复前: 当DOMContentLoaded事件被多次触发时,Banner欢迎语会重复显示,导致多个打字动画同时运行
    • 修复后: 无论DOMContentLoaded事件被触发多少次,Banner欢迎语打字动画只执行一次

    技术要点:

    • 全局状态管理: 使用全局变量记录动画执行状态
    • 事件防抖: 防止同一事件多次触发导致的重复执行
    • 容错设计: 确保初始化失败时状态能正确重置
    • DOM事件处理: 正确处理DOMContentLoaded事件的多次触发情况

    使用步骤:
    无需特殊操作,修复后Banner欢迎语会自动正确显示,不会出现重复问题。

    1. 访问网站首页,Banner区域会显示欢迎语打字动画
    2. 无论页面如何刷新或DOM事件如何触发,动画只会执行一次
    3. 动画仍保持原有的彩虹配色、打字效果和循环逻辑

    优化特性:

    • 动画只执行一次,避免视觉混乱
    • 保持原有动画效果不变
    • 增强了代码的健壮性和容错性
    • 解决了DOM事件多次触发导致的问题

     
     
     
     

    📝 复制带版权功能

    文件位置: core/panel/settings/set-artice.php · functions.php

    • 功能描述: 新增复制带版权功能,当用户复制网站内容时,自动在复制内容后添加版权信息
    • 实现要点:

    - 主题设置开关: 在文章设置中添加"复制带版权开关",允许用户开启或关闭此功能
    - 动态博客名称: 使用get_bloginfo('name')获取博客名称,使版权信息更加个性化
    - 智能触发: 仅在用户真正复制内容时触发,避免空选或误操作
    - 标准API: 使用标准的clipboardData API,兼容所有现代浏览器
    - 美观格式: 版权信息与复制内容之间空两行,提升可读性

    • 代码寻找:

    - 设置开关添加:core/panel/settings/set-artice.php:156-162
    - 功能实现:functions.php:1233-1261

    使用步骤:

    1. 后台 → 外观 → 盒子萌主题设置 → 文章设置
    2. 找到"复制带版权开关"选项,开启或关闭此功能
    3. 保存设置后,前端网站会根据设置自动启用或禁用复制带版权功能

    实现效果:
    当用户复制网站内容时,会自动在复制内容后添加以下格式的版权信息:

    原文出自[您的博客名称] 转载请保留原文链接: [文章URL]
    

    优化特性:

    • 与主题设置无缝集成,可随时开启或关闭
    • 智能识别用户复制操作,避免不必要的触发
    • 使用主题统一的设置API,确保兼容性
    • 美观的版权信息格式,提升用户体验
    • 兼容所有现代浏览器

     
     
     
     

    🔧 修复主题更新时侧边栏和底部内容偶然丢失bug

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

    • 功能描述: 修复了主题更新时侧边栏和底部内容偶然丢失的问题,确保侧边栏始终能正确注册和显示
    • 实现要点:

    - 移除条件判断: 将侧边栏注册的条件判断 if(get_boxmoe('boxmoe_blog_layout') == 'two') 移除
    - 始终注册侧边栏: 修改为无论当前布局设置如何,都始终注册所有侧边栏
    - 确保主题选项数据不可用时的兼容性: 避免主题更新时主题选项数据暂时不可用导致侧边栏无法注册
    - 保持原有功能不变: 侧边栏的显示与否仍由模板文件中的条件判断控制

    • 代码寻找:

    - 侧边栏注册逻辑修复:core/module/fun-basis.php:324-342

    修复前后对比:

    • 修复前: 侧边栏注册依赖于 get_boxmoe('boxmoe_blog_layout') == 'two' 条件,当主题更新时主题选项数据暂时不可用,导致侧边栏无法注册,内容丢失
    • 修复后: 始终注册所有侧边栏,确保主题更新时侧边栏和底部内容不会丢失,侧边栏显示与否仍由模板文件控制

    技术要点:

    • 侧边栏注册时机: 主题初始化时无条件注册所有侧边栏
    • 主题选项数据依赖: 避免核心功能依赖可能暂时不可用的主题选项数据
    • 向后兼容: 保持原有功能逻辑不变,只修改注册时机
    • 模板控制显示: 侧边栏显示仍由模板文件中的条件判断控制

    使用步骤:
    无需特殊操作,修复后主题更新时侧边栏和底部内容会自动保持正常显示。

    1. 正常更新主题
    2. 主题更新后,侧边栏和底部内容不会丢失
    3. 侧边栏显示仍由后台主题设置中的布局设置控制

    优化特性:

    • 提高了主题更新时的稳定性
    • 避免了主题选项数据暂时不可用导致的内容丢失
    • 保持了原有的侧边栏显示逻辑
    • 增强了主题的容错能力
    • 无需用户额外配置

     
     
     
     

    🎯 修复文章列表快速编辑状态下拉框无法点击bug

    文件位置: assets/js/admin-select-ui.js

    • 功能描述: 修复了文章列表快速编辑时状态下拉框无法点击的问题,确保快速编辑面板中的选择器能正常工作
    • 实现要点:

    - 在自定义Select模拟器中添加了排除规则,跳过快速编辑面板中的选择器
    - 排除了name为post_status的选择器(快速编辑中的状态选择器)
    - 排除了所有.inline-edit-row内的选择器(所有快速编辑行中的选择器)
    - 确保自定义Select模拟器不会干扰WordPress原生快速编辑功能

    • 代码寻找:

    - 排除规则添加:assets/js/admin-select-ui.js:20-21

    修复前后对比:

    • 修复前: 文章列表快速编辑时,状态下拉框被自定义Select模拟器覆盖,无法点击选择
    • 修复后: 快速编辑面板中的所有选择器保持原生状态,可正常点击和选择

    技术要点:

    • 选择器排除机制: 使用jQuery选择器判断,确保特定区域的选择器不受影响
    • WordPress兼容性: 确保主题自定义功能不干扰WordPress核心功能
    • 动态元素处理: 考虑到快速编辑面板是动态生成的,确保排除规则能正确应用

    使用步骤:
    无需特殊操作,修复后快速编辑功能会自动恢复正常。

    1. 进入WordPress后台 → 文章 → 所有文章
    2. 鼠标悬停在任意文章上,点击"快速编辑"链接
    3. 在弹出的快速编辑面板中,状态下拉框可正常点击和选择
    4. 其他快速编辑功能也保持正常




    📱 移动端菜单栏logo大小优化

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

    • 优化内容: 将移动端侧边栏logo尺寸从116px×36px调整为80px×24px
    • 实现方式: 添加了响应式媒体查询,确保仅在移动端(max-width: 991px)应用较小尺寸
    • 保持了桌面端logo尺寸不变,确保了响应式设计的一致性
    • 优化效果: 移动端侧边栏logo大小更适合屏幕比例,避免了logo过大导致菜单布局拥挤的问题

    代码实现:

    .boxmoe_header .navbar-brand img {width:116px;height:36px;object-fit:contain;}
    
    /* 📱 移动端侧边栏Logo优化 */
    @media (max-width: 991px) {
        .boxmoe_header .offcanvas-header img {
            width: 80px;
            height: 24px;
            object-fit: contain;
        }
    }
    

     
     
     

    👤 移动端用户按钮下拉菜单修复

    文件位置:

    • header.php
    • assets/js/boxmoe.js

    功能描述:

    • 修复了移动端用户按钮下拉菜单功能,确保已登录用户点击时显示包含会员中心、后台管理(仅管理员)、注销登录的下拉菜单
    • 为未登录用户添加了下拉菜单,显示登录、注册选项
    • 修复了登录状态检测不准确的问题

    实现要点:

    1. 登录状态检测优化:

    - 在 header.php 中添加了明确的登录状态元数据
    - 使用 PHP 的 is_user_logged_in() 函数直接输出登录状态,确保准确性
    - 在 JavaScript 中优先使用此元数据进行登录状态判断

    1. 下拉菜单功能:

    - 已登录用户:显示会员中心、后台管理(仅管理员)、注销登录选项
    - 未登录用户:显示登录、注册选项
    - 平滑的显示/隐藏动画效果
    - 点击外部或按ESC键可关闭菜单
    - 完美适配亮色和暗色模式

    1. 技术实现:

    - 动态创建和渲染下拉菜单
    - 智能检测管理员权限
    - 多重链接获取机制确保兼容性
    - 流畅的CSS过渡动画
    - 完善的事件处理机制

    代码实现:

    header.php 中添加:

    <!-- 🎯 页面元数据:登录状态 -->
    <meta name="logged-in" content="<?php echo is_user_logged_in() ? 'true' : 'false'; ?>">
    

    assets/js/boxmoe.js 中优化登录状态检测:

    // 最可靠的登录状态检测:使用header中添加的元数据
    const isLoggedIn = () => {
        // 1. 优先使用header中添加的明确登录状态元数据(PHP直接输出,最可靠)
        const loggedInMeta = document.querySelector('meta[name="logged-in"]');
        if (loggedInMeta) {
            return loggedInMeta.content === 'true';
        }
        
        // 2. 次优选择:检查WordPress的body类名
        if (document.body.classList.contains('logged-in')) {
            return true;
        }
        
        // 3. 检查是否存在移动端登录用户包装器
        const mobileLoggedWrapper = document.querySelector('.mobile-logged-user-wrapper');
        if (mobileLoggedWrapper) {
            return true;
        }
        
        // 以上都不满足,视为未登录
        return false;
    };
    

    修复效果:
    ✅ 已登录用户点击移动端用户按钮 → 正确显示包含会员中心、后台管理(仅管理员)、注销登录的下拉菜单
    ✅ 未登录用户点击移动端用户按钮 → 正确显示包含登录、注册的下拉菜单
    ✅ 彻底解决了已登录状态误判为未登录的问题
    ✅ 修复了下拉菜单显示错误的问题
    ✅ 完美适配亮色和暗色模式

     
     
     

    感谢您的支持
    微信赞赏

    微信扫一扫

    支付宝赞赏

    支付宝扫一扫



    评论(2)

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

    发表评论

    表情 颜文字
    插入代码

    北京时间 (Asia/Shanghai)

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