📐 文章图片自定义尺寸支持
文件位置: core/module/fun-article.php · core/module/fun-markdown.php
- 功能描述:修复文章图片无法添加自定义高宽尺寸的问题,支持HTML标签和Markdown语法自定义图片尺寸
- 核心改进:
- 修改了宽高属性处理逻辑:优化 boxmoe_remove_width_height 函数,不再移除所有图片的宽高属性,只处理没有手动添加尺寸的图片
- 支持Markdown自定义尺寸语法:新增 或 语法支持
- 保持向后兼容:自动区分用户手动添加的尺寸和系统自动生成的尺寸
- 实现要点:
- 在 boxmoe_remove_width_height 函数中添加尺寸属性检测,跳过已手动添加尺寸的图片
- 增强Markdown图片解析正则表达式,支持解析自定义尺寸参数
- 确保懒加载功能与自定义尺寸兼容
- 使用方式:
- HTML标签:
- Markdown语法:
🏞️ 文章编辑图片弹窗优化
文件位置: assets/js/quicktags-shiroki.js · core/module/fun-admin.php
- 功能描述:替换了文章编辑工具栏图片按钮的默认浏览器弹窗,实现了高斯模糊的圆角拟态玻璃窗口,支持输入图片链接和图片名称
- 核心改进:
- 自定义弹窗设计:创建了高斯模糊的圆角拟态玻璃窗口,提升视觉体验
- 完整的图片插入功能:支持输入图片链接和图片名称,生成完整的HTML图片标签
- 替换默认功能:完全替换了WordPress自带的Quicktags图片插入功能
- 优化用户体验:修复了页面跳转和闪屏问题,确保操作流畅
- 支持键盘操作:支持Enter键插入图片,Escape键关闭弹窗
- 响应式设计:弹窗适配不同屏幕尺寸
- 实现要点:
- 创建了自定义弹窗HTML结构和CSS样式
- 使用事件委托绑定弹窗按钮事件
- 保存和恢复页面滚动位置,防止页面跳转
- 优化弹窗动画效果,减少视觉闪烁
- 确保弹窗HTML和样式只被添加一次
- 使用方式:
- 点击文章编辑器工具栏中的图片按钮
- 在弹出的玻璃态窗口中输入图片链接和图片名称
- 点击"确定"按钮插入图片到编辑器中
🔄 文章最后更新时间显示
文件位置: page/template/blog-single.php · page/template/blog-page.php · page/template/blog-page-nosidebar.php · page/template/blog-page-nosidebar-noborder.php · assets/css/style.css
- 功能描述: 在前端文章页的文章信息栏中新增文章最后一次更新时间的显示,方便读者了解文章的时效性
- 实现要点:
- 在文章信息栏中添加了最后更新时间的显示位置
- 使用 Font Awesome 图标 作为视觉标识
- 调用 WordPress 内置函数 get_the_modified_date() 获取文章最后更新时间
- 为新添加的 .modified 类添加了 CSS 样式,确保与其他信息项保持一致
- 适配了所有文章模板页面,包括单页、列表页、无侧边栏页和无侧边栏无边框页
- 代码寻找:
- 文章单页模板:page/template/blog-single.php:45-46
- 文章列表页模板:page/template/blog-page.php:35-36
- 无侧边栏文章页:page/template/blog-page-nosidebar.php:35-36
- 无侧边栏无边框文章页:page/template/blog-page-nosidebar-noborder.php:35-36
- CSS 样式添加:assets/css/style.css:2800
实现效果:
文章信息栏中会显示类似以下格式的信息:
- 作者:[作者名]
- 发布日期:[发布日期]
- 更新日期:[最后更新日期]
- 浏览量:[浏览数量]
优化特性:
- 与现有文章信息栏样式保持一致
- 使用直观的刷新图标作为视觉标识
- 适配所有文章模板页面
- 无需额外配置,自动显示
- 保持了与主题整体风格的一致性
🥰 全新折叠语法
文件位置: core/module/fun-markdown.php · core/module/fun-shortcode.php · assets/css/style.css
- 功能描述: 新增主题自带的折叠语法功能,支持Markdown语法和主题原生短代码,实现可折叠的内容块
- 实现要点:
- Markdown语法支持: 识别
标题\n内容\n::: 格式,转换为HTML的
和
标签
- 主题原生短代码: 新增
折叠内容
短代码,支持自定义标题和默认展开状态- 可视化编辑器支持: 在编辑器下拉菜单中添加折叠短代码选项
- 完整的CSS样式: 包含亮色和暗色模式适配,悬停效果和过渡动画
- 响应式设计: 适配不同屏幕尺寸- 代码寻找:
- Markdown语法解析:
core/module/fun-markdown.php:165-180
- 短代码实现:core/module/fun-shortcode.php:345-356
- 可视化编辑器选项:core/module/fun-shortcode.php:381-382
- CSS样式:assets/css/style.css:1701-1787使用步骤:
- Markdown语法: 在文章中输入
details 折叠标题\n折叠内容\n:::
- 短代码: 在文章中插入 折叠内容
折叠标题
优化特性:
- 亮色模式下标题悬停颜色变为粉色
- 暗色模式下标题悬停颜色变为紫色
- 折叠卡片悬停时有向上移动5px的动画效果
- 标题文字与箭头图标保持合适间距,避免遮挡
- 适配亮色和暗色两种主题模式
- 平滑的过渡动画,提升用户体验
🔄 文章列表无限加载功能
文件位置: core/panel/settings/set-artice.php · core/module/fun-article.php · page/template/blog-list.php · assets/js/boxmoe.js
- 功能描述: 在后台主题设置的文章设置中新增无限加载选项,实现文章列表滚动到底部自动加载更多文章,加载时显示动画,加载完成的文章以上移渐显方式呈现
- 实现要点:
- 添加后台选项: 在文章设置的【文章列表分页模式】中新增"无限加载"选项
- 修改分页函数: 更新 boxmoe_pagination() 函数,添加无限加载模式的支持
- 添加前端结构: 在文章列表模板中添加加载动画和结束消息的HTML结构
- 实现滚动加载: 使用 fetch API 实现异步加载,监听滚动事件,当滚动到页面底部200px时自动加载
- 优化加载动画: 采用柔和的脉冲动画,避免旋转动画导致的"反转色块"问题
- 文章入场动画: 新加载的文章以上移渐显方式呈现,提升用户体验
- 结束消息样式: 全部加载完成后显示"完"字,继承激活页码样式(粉色背景,白色文字)
- 代码寻找:
- 后台选项添加:core/panel/settings/set-artice.php:115
- 分页函数修改:core/module/fun-article.php:359-361
- 前端结构添加:page/template/blog-list.php:142-166
- 无限加载逻辑:assets/js/boxmoe.js:2496-2672
- 加载动画样式:assets/js/boxmoe.js:2576-2628
使用步骤:
- 后台 → 外观 → 盒子萌主题设置 → 文章设置
- 找到"文章列表分页模式"选项,选择"无限加载"
- 保存设置后,前端文章列表会启用无限加载功能
实现效果:
- 访问文章列表页,滚动到底部会自动加载更多文章
- 加载过程中显示柔和的脉冲动画
- 新加载的文章平滑上移渐显
- 全部文章加载完成后显示"完"字,样式与激活页码一致
优化特性:
- 平滑的加载体验,提升用户体验
- 柔和的脉冲动画,避免视觉冲突
- 文章上移渐显动画,增强页面活力
- 结束消息样式与主题风格统一
- 兼容现有主题功能
- 无需额外配置,启用即可使用
📧 SMTP功能增强
文件位置: core/module/fun-smtp.php
- SMTP连接测试功能:新增了直接测试SMTP连接的功能
- 功能:在发送测试邮件前,可先测试SMTP连接是否正常
- 入口:SMTP设置页面新增"测试SMTP连接"按钮
- 实现:直接创建PHPMailer实例测试连接,不发送实际邮件
- 反馈:显示连接成功或失败的详细信息
- 邮件模板美化:优化了所有邮件模板的设计
- 采用玻璃卡片设计风格
- 紫色渐变主题
- 响应式布局
- 清晰的视觉层次
📚 首页文章数量控制
文件位置: core/panel/settings/set-artice.php · core/module/fun-article.php
- 首页文章显示数量设置项: 在后台主题设置的【文章设置】中新增了【首页文章显示数量】设置项
- 功能:可灵活调整首页显示的文章数量,默认3篇
- 设置项ID:boxmoe_home_posts_per_page
- 默认值:3
- 位置:放在【开启所有文章形式支持】下面,【首页文章仅显示分类】上面
- 类型:文本输入框,支持自定义数字
- 首页文章数量控制实现:
- 在boxmoe_custom_post_order函数中添加了首页文章数量控制逻辑
- 通过get_boxmoe('boxmoe_home_posts_per_page', 3)获取设置值,默认值为3
- 使用intval()确保获取到的是整数类型
- 应用于首页文章查询,控制每页显示数量
- 分页功能:系统已自带完善的分页功能,支持多种分页类型(多页导航、上/下页按钮、无限加载),可通过后台设置选择
🎯 Banner设置增强
文件位置: core/panel/settings/set-banner.php · header.php · core/module/fun-basis.php · assets/js/boxmoe.js
- 关闭打字效果设置项:在后台主题设置的【Banner设置】中新增了"关闭打字效果"设置项
- 功能:开启后欢迎语将直接显示,不显示打字动画
- 设置项ID:boxmoe_banner_typing_switch
- 默认为关闭状态(显示打字动画)
- 前端逻辑:根据设置值决定是否使用boxmoe-typing-animation类
- 欢迎语预设值更新:将Banner欢迎语的默认预设值更新为
- 旧值:Hello! 欢迎来到盒子萌!
- 新值:Hello! 欢迎来到盒子萌-🎉纸鸢版!
- 关闭自动换图功能:在后台主题设置的【Banner设置】中新增了"关闭自动换图功能"设置项
- 功能:开启后Banner图片将保持静态显示,不再自动轮播
- 设置项ID:boxmoe_banner_auto_switch
- 默认为关闭状态(启用自动换图)
- 前端逻辑:根据设置值决定是否启动自动换图功能
- 实现方式:在initBannerRandomSwitch()函数中添加条件判断,当设置为true时不启动自动换图
🌐 WPJAM菜单中文翻译
文件位置: core/module/fun-admin.php
- 翻译WPJAM插件侧边栏菜单名称:将wpjam-basic插件在侧边栏菜单的名称从英文翻译为中文
- 功能:将"WPJAM"主菜单名称改为"WPJAM 基础设置"
- 子菜单标题保持为中文"优化设置"
- 使用admin_menu钩子确保在插件注册菜单后执行
- 翻译效果持久,不会被插件更新覆盖
- 保持了主题的一致性和美观性
SMTP邮件设置新增消息接受邮箱
🎯 功能目标
在主题SMTP邮件设置中新增消息接受邮箱配置,允许用户自定义接收新评论和新会员注册通知的邮箱地址,提高邮件通知系统的灵活性和可配置性。
#🔧 实现方法
修改了以下文件:
core/panel/settings/set-smtp.php- 在主题选项框架中添加消息接受邮箱设置项core/module/fun-smtp.php- 在独立SMTP设置页面添加消息接受邮箱设置项core/module/fun-msg.php- 优化邮件发送逻辑,支持从多个设置源获取设置值
✏️ 具体修改内容
- 在主题选项框架中添加设置项:
- 在SMTP发件消息通知设置开关部分新增了"消息接受邮箱"设置项
- 允许用户配置接收新评论和新会员注册通知的邮箱地址
- 在独立SMTP设置页面添加设置项:
- 在保存设置的逻辑中添加了保存boxmoe_smtp_receive_email选项的代码
- 在设置表单中添加了消息接受邮箱的输入字段,位置在发件人名称字段之后
- 优化邮件发送逻辑:
- 修改了boxmoe_new_user_register函数,使其优先使用配置的消息接受邮箱
- 修改了boxmoe_comment_notification函数,使其优先使用配置的消息接受邮箱
- 实现了多源设置值获取逻辑,确保设置的一致性和可靠性
🎨 实现效果
- 可以在主题选项框架的SMTP设置页面配置消息接受邮箱
- 可以在独立的SMTP设置页面配置消息接受邮箱
- 系统会优先使用独立SMTP设置页面的设置值
- 若未设置则回退到使用系统管理员邮箱或文章作者邮箱
- 提高了邮件通知系统的灵活性和可配置性
📝 技术要点
- 采用了多源设置值获取策略,确保设置的可靠性
- 优先从独立SMTP设置页面(
get_option)获取设置值 - 其次从主题选项框架(
get_boxmoe)获取设置值 - 最后使用默认值(系统管理员邮箱或文章作者邮箱)
- 保持了与主题原有代码风格的一致性
🏞️ 新增菜单【导航】自定义图标链接功能
功能概述
为WordPress主题添加了菜单自定义图标链接功能,允许用户在菜单编辑页面为每个菜单项添加自定义图标,支持PNG、SVG、JPG格式,图标尺寸与文字大小一致。
功能实现
添加菜单自定义图标字段
文件位置: h:/shiroki-wordpress/shiroki/shiroki/app/public/wp-content/themes/lolimeow-shiroki/core/module/fun-basis.php
- 添加了菜单图标字段的注册和保存功能
- 支持上传或输入图片URL,支持PNG、SVG、JPG格式
- 在菜单编辑页面右侧添加了"🥳 菜单图标设置"元框
- 实现了图标预览功能
修改导航菜单Walker类
文件位置: h:/shiroki-wordpress/shiroki/shiroki/app/public/wp-content/themes/lolimeow-shiroki/core/module/fun-navwalker.php
- 在bootstrap_5_wp_nav_menu_walker类中添加了图标显示功能
- 在菜单项前显示自定义图标,与文字垂直对齐
- 使用get_post_meta()函数获取菜单图标的URL
添加CSS样式
文件位置: h:/shiroki-wordpress/shiroki/shiroki/app/public/wp-content/themes/lolimeow-shiroki/assets/css/style.css
- 图标尺寸设置为1em x 1em,与文字大小一致
- 图标与文字之间添加了0.10em的间距
- 图标使用vertical-align: middle实现垂直对齐
- 支持响应式设计
使用方法
- 登录WordPress后台,进入外观 > 菜单页面
- 在菜单结构中展开任意菜单项
- 在右侧的"🥳 菜单图标设置"区域,点击"选择图片"按钮上传图片,或直接输入图片URL
- 可以实时预览图标效果
- 点击"保存菜单"按钮保存设置
- 刷新网站前端,即可看到带有图标的菜单项
功能特点
- ✅ 支持PNG、SVG、JPG等多种图片格式
- ✅ 图标尺寸与文字大小一致(1:1比例)
- ✅ 图标与文字垂直对齐,视觉效果美观
- ✅ 支持实时预览图标效果
- ✅ 与主题的亮色/暗色模式无缝集成
- ✅ 操作简单,界面友好
Bug修复
问题描述
菜单图标链接保存后再次打开被清空,但是前端正常显示图标。
问题原因
JavaScript代码在保存菜单时,将当前图标值赋给了所有菜单项的隐藏字段,导致只有最后一次编辑的菜单项能保存图标,其他菜单项的图标会被清空。
解决方案
- 添加菜单项选择机制:
- 当用户点击菜单项的编辑按钮(展开菜单项)时,将当前菜单项标记为"当前选中"
- 其他菜单项移除"当前选中"状态
- 优化图标值填充逻辑:
- 只在菜单项展开时,将该菜单项的图标值填充到右侧元框
- 修复了setTimeout回调函数中this上下文的问题
- 改进保存机制:
- 保存菜单时,只将右侧元框中的图标值保存到当前选中的菜单项中
- 其他菜单项保持原有图标值不变
- 添加实时更新功能:
- 当右侧元框中的图标值变化时,实时更新当前选中菜单项的隐藏字段
- 确保用户在保存前就能看到图标值的变化
技术细节
菜单图标字段注册
function shiroki_menu_item_icon_field() {
// 注册菜单图标元框
add_meta_box(
'shiroki_menu_item_icon',
'🥳 菜单图标设置',
'shiroki_menu_item_icon_field_html',
'nav-menus',
'side',
'default'
);
}
add_action( 'admin_init', 'shiroki_menu_item_icon_field' );
菜单图标保存
function shiroki_save_menu_item_icon_fields($menu_id, $menu_item_db_id) {
if (isset($_POST['menu_item_icon'][$menu_item_db_id])) {
update_post_meta(
$menu_item_db_id,
'_shiroki_menu_icon',
esc_url_raw($_POST['menu_item_icon'][$menu_item_db_id])
);
} else {
delete_post_meta($menu_item_db_id, '_shiroki_menu_icon');
}
}
add_action( 'wp_update_nav_menu_item', 'shiroki_save_menu_item_icon_fields', 10, 2 );
图标显示
// 获取菜单图标
$icon_url = get_post_meta($item->ID, '_shiroki_menu_icon', true);
$icon_html = '';
if ($icon_url) {
$icon_html = '<img src="' . esc_url($icon_url) . '" alt="' . esc_attr($item->title) . '" class="shiroki-menu-icon" style="vertical-align: middle;" /> ';
}
CSS样式
.shiroki-menu-icon {
width: 1em;
height: 1em;
margin-right: 0.5em;
vertical-align: middle;
object-fit: contain;
display: inline-block;
}
🌊 新增波浪细线条分割线
文件位置: assets/css/shiroki-divider.css · assets/js/tinymce-shiroki-divider.js · assets/js/quicktags-shiroki-divider.js
- 功能描述: 新增分割线功能,支持粉紫蓝渐变细波浪线
- 实现方式:
- 使用SVG创建波浪线形状
- 通过伪元素实现多层波浪线效果
- 支持TinyMCE和Quicktags两种编辑器工具栏
- 使用HTML注释语法 和Markdown语法 ---
- 通过WordPress内容过滤器自动转换为HTML标签
- 使用步骤: 在文章编辑器中点击"分割线"按钮即可插入
🫂 创建分类友链模板
开发内容
- 创建分类友链模板:
- 新建 page-friendlink-shiroki.php 作为分类友链模板
- 支持动态读取后台链接分类,非硬编码分类列表
- 实现分类标签页切换功能
- 每个分类下显示对应友链卡片,包含网站名称、描述、ICO图标和链接
- 暗色模式支持:
- 为友链模板添加完整的暗色模式样式
- 使用 CSS 媒体查询 prefers-color-scheme: dark
- 修复暗色模式下文本可见性问题,添加 !important 优先级确保样式生效
- 同时更新了原 page-friendlink.php 的暗色模式样式
- 智能申请按钮:
- 实现申请友链按钮,根据页面存在情况动态显示
- 检测 YIKAN 友链页面是否存在,优先跳转该页面
- 支持多方法检测页面:通过标题、ID 等
- 如果申请页面不存在,显示提示信息
- 友链卡片设计:
- 响应式网格布局,适配不同屏幕尺寸
- 卡片包含网站名称、描述、ICO图标和访问链接
- 优化 hover 效果和过渡动画
- 暗色模式下调整卡片背景和边框颜色
- 页面样式优化:
- 提高申请友链页面第一段文字的可见性
- 修复卡片阴影和边框样式
- 优化分类标签页的选中状态样式
技术实现
- 使用 WordPress API
get_terms获取链接分类 - 使用
get_bookmarks获取分类下的友链 - 动态生成分类标签页和内容
- 页面检测使用
get_pages和标题匹配 - CSS 媒体查询实现暗色模式
- 响应式设计使用 Grid 布局
修复的问题
- 模板无法检测 YIKAN 友链页面:改为检测页面标题
- 暗色模式下文本不可见:添加
!important优先级 - 原友链页面暗色模式问题:更新样式文件
文件修改
page-friendlink-shiroki.php:新建分类友链模板page-friendlink.php:更新暗色模式样式.开发笔记/盒子萌-共创开发笔记.md:记录开发内容
✨ 优化分类友链模板样式
开发内容
- 背景色同步网站ICO图:
- 修改友链卡片背景,使用网站ICO图片作为背景
- 为每个卡片添加 data-bg 属性存储背景图片URL
- 使用 JavaScript 动态为卡片 ::before 伪元素设置背景图片
- 确保背景图片与头像使用相同的 ICO 图片,实现视觉统一
- 添加高斯模糊效果:
- 为卡片背景添加 filter: blur(15px); 实现高斯模糊效果
- 设置 opacity: 0.3; 确保背景图片不会过于突兀
- 调整伪元素大小和位置,使其覆盖整个卡片
- 悬停效果优化:
- 实现悬停时降低高斯模糊效果,从 15px 降低到 10px
- 悬停时稍微提高背景图片透明度,从 0.3 提高到 0.4
- 为暗色模式也添加相应的悬停效果优化
- 卡片布局调整:
- 重新设计卡片布局,左侧显示圆形头像,右侧显示网站信息
- 添加在线状态指示器,增强社交感
- 优化卡片内部元素的间距和排版
- 响应式设计:
- 调整卡片网格布局,适应不同屏幕尺寸
- 确保在移动设备上卡片也能正确显示
技术实现
- 使用 CSS
::before伪元素实现背景图片和高斯模糊效果 - 使用 JavaScript 动态创建样式规则,为每个卡片设置背景图片
- 使用 CSS 过渡效果实现平滑的悬停动画
- 使用 CSS 媒体查询实现暗色模式支持
文件修改
page-friendlink-shiroki.php:优化友链模板样式,添加背景图片同步和高斯模糊效果

评论(2)