0%
boxmoe_header_banner_img

加载中

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


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

💬 评论列表网格卡片式布局优化

功能描述: 后台「评论」页面完全重构,采用网格卡片式布局,拟态玻璃质感UI设计,支持懒加载、多选批量操作、自定义确认弹窗等功能。

优化内容:

  1. 网格卡片式布局

- 卡片显示评论者头像、名称、邮箱、评论内容
- 文章信息以勋章样式展示,14种明亮浅色随机分配
- 状态标签(已批准、待审核、垃圾、回收站)
- 回复数量标识

  1. 玻璃拟态UI设计

- 半透明背景配合 backdrop-filter: blur() 毛玻璃效果
- 渐变色彩头部区域
- 统一的圆角设计 var(--admin-radius-xl)
- 悬停上浮动画效果

  1. 懒加载机制

- 默认首次加载8条评论
- 向下滚动到底部附近(距离200px)自动加载8条
- 以此类推,直到加载完所有评论
- 滚动监听使用防抖处理(100ms)

  1. 搜索功能优化

- 搜索模式下不受懒加载限制
- 直接加载所有匹配的搜索结果
- 实时搜索(300ms防抖)
- 搜索框位于顶部工具栏右侧

  1. 状态筛选栏

- 全部、待审核、已批准、垃圾评论、回收站筛选
- 显示各状态评论数量
- 点击切换筛选条件
- 「全部」分类包含所有状态(approve、hold、spam、trash)

  1. 自定义排序

- 「全部」分类:待审核排最前,回收站排最后
- 其他分类:按日期倒序,最新的在前
- 使用 MySQL FIELD 函数实现自定义排序优先级

  1. 多选批量操作

- 点击卡片或选择圆圈进入多选模式
- 批量操作工具栏显示已选择数量
- 支持功能:批准、驳回、标记垃圾、移至回收站、永久删除、取消选择

  1. 自定义确认弹窗

- 批量删除、移至回收站、标记垃圾时使用自定义确认弹窗
- 与整体UI风格一致(玻璃拟态)
- 显示选中的评论数量(高亮)
- 不同类型操作不同颜色按钮(删除红色、垃圾紫色、回收站橙色、恢复绿色)

  1. 快捷操作按钮

- 查看、编辑、回复、批准/驳回、标记垃圾、移至回收站/还原、永久删除
- 一行3个按钮布局,图标+文字垂直排列
- 悬停效果:背景色变化+轻微上浮

  1. 回复评论弹窗

- 玻璃拟态设计风格
- 显示原文内容预览
- 文本框支持多行输入
- 发送回复后自动刷新列表

  1. 响应式设计

- 桌面端:多列网格布局(auto-fill minmax 320px)
- 平板端:减少列数,适配中等屏幕
- 移动端:单列布局,优化触摸区域

  1. 隐藏原生元素

- 隐藏 WordPress 原生评论列表表格
- 隐藏原生分页导航
- 隐藏底部状态筛选链接(.subsubsub)

代码寻找:

  • PHP后端: wp-content/themes/lolimeow/core/module/comment-grid/fun-comment-grid.php (Shiroki_Comment_Grid_UI类)

- ajax_get_comments() - 获取评论列表(支持分页和搜索)
- 非搜索模式:per_page = 8,支持分页
- 搜索模式:不限制数量,加载所有结果
- format_comment_item() - 格式化评论数据
- ajax_approve_comment() / ajax_unapprove_comment() - 批准/驳回评论
- ajax_spam_comment() / ajax_unspam_comment() - 标记/恢复垃圾评论
- ajax_trash_comment() / ajax_untrash_comment() - 移至/还原回收站
- ajax_delete_comment() - 永久删除评论
- ajax_reply_comment() - 回复评论
- ajax_bulk_action_comments() - 批量操作评论

  • JS前端: wp-content/themes/lolimeow/assets/js/admin/comment-grid/comment-grid.js (CommentGrid对象)

- perPage = 8 - 每页加载数量配置
- loadComments() / loadMoreComments() - 加载评论列表/懒加载
- appendComments() - 追加评论到现有列表
- initLazyLoad() - 初始化滚动监听
- showBulkConfirmModal() - 显示批量操作确认弹窗
- createCommentCard() - 创建评论卡片HTML
- handleSingleAction() / executeAction() - 处理单个操作
- handleBulkAction() / executeBulkAction() - 处理批量操作
- openReplyModal() - 打开回复弹窗
- showToast() - 显示Toast提示

  • CSS样式: wp-content/themes/lolimeow/assets/css/admin/comment-grid/comment-grid.css

- .shiroki-comment-wrapper - 评论网格容器
- .shiroki-comment-top-bar - 顶部工具栏(筛选 + 搜索 + 批量操作)
- .shiroki-comment-grid - 网格容器
- .shiroki-comment-card - 评论卡片
- .shiroki-comment-select-circle - 多选圆圈
- .shiroki-comment-post-badge - 文章勋章(14种颜色)
- .shiroki-comment-actions - 操作按钮区域(一行3个)
- .shiroki-comment-bulk-actions - 批量操作工具栏
- .shiroki-comment-bulk-confirm-modal - 批量确认弹窗
- .shiroki-comment-reply-modal - 回复弹窗
- .shiroki-comment-load-more - 懒加载更多指示器

  • 变量管理: wp-content/themes/lolimeow/assets/css/admin/admin-variables.css

- 复用短代码按钮颜色变量(--sc-btn-
- 玻璃拟态效果变量(--admin-glass-blur, --admin-border-glass)

AJAX 接口:

  • shiroki_get_comments - 获取评论列表(支持分页、筛选、搜索)

- 参数: page, per_page, status, search, post_id
- 返回: comments, current_page, has_more

  • shiroki_approve_comment - 批准评论
  • shiroki_unapprove_comment - 驳回评论
  • shiroki_spam_comment - 标记垃圾评论
  • shiroki_unspam_comment - 恢复垃圾评论
  • shiroki_trash_comment - 移至回收站
  • shiroki_untrash_comment - 还原评论
  • shiroki_delete_comment - 永久删除评论
  • shiroki_reply_comment - 回复评论
  • shiroki_bulk_action_comments - 批量操作评论

文件变更:

  • core/module/comment-grid/fun-comment-grid.php - 新增评论网格UI主类
  • assets/js/admin/comment-grid/comment-grid.js - 新增评论网格交互逻辑
  • assets/css/admin/comment-grid/comment-grid.css - 新增评论网格样式
  • functions.php - 加载新模块

 
 
 

🪟 媒体弹窗优化

  • 功能描述: 完全替换 WordPress 原生媒体弹窗,采用玻璃拟态UI设计,支持懒加载、详情抽屉、自动保存等功能。
  • 优化内容:

- 玻璃拟态UI设计: 浅蓝色渐变主题,半透明背景配合毛玻璃效果,与后台整体风格统一。
- 懒加载机制: 默认每次加载21条附件,向下滚动自动加载更多,搜索模式下加载全部结果。
- 分类筛选: 支持所有多媒体项目、上传到本文章、图片、音频、视频、文档、试算表、归档、孤立、我的等分类筛选。
- 日期筛选: 支持按年月筛选附件。
- 搜索功能: 实时搜索(300ms防抖),搜索时加载所有匹配结果。
- 详情抽屉: 双击附件从右侧展开抽屉,显示完整附件信息(标题、题注、替代文本、描述、文件信息)。
- 自动保存: 关闭抽屉时检测变更,自动保存并同步更新网格显示。
- 复制链接: 详情抽屉内提供复制文件URL按钮,支持现代Clipboard API和降级方案。
- 插入功能: 根据文件类型智能插入(图片用img标签、视频用短代码、音频用短代码、其他文件用短代码)。
- 悬停提示: 鼠标悬停附件显示【双击可查看详情】气泡提示,跟随鼠标位置避免被裁剪。
- 顶部通知: 保存成功/失败提示从底部改为顶部显示。
- 响应式设计: 移动端适配,抽屉全屏显示。

  • 代码寻找:

- PHP后端: wp-content/themes/lolimeow/core/module/media-library/fun-media-modal.php (Shiroki_Media_Modal类)
- ajax_get_media_items() - 获取媒体列表(支持分页和搜索)
- ajax_upload_media() - 处理文件上传
- ajax_get_media_detail() - 获取附件详情
- ajax_save_media_detail() - 保存附件详情
- ajax_delete_media() - 删除附件
- format_media_item() - 格式化媒体项数据
- JS前端: wp-content/themes/lolimeow/assets/js/admin/media-library/media-modal.js (ShirokiMediaModal对象)
- loadMediaItems() / loadMoreItems() - 加载媒体列表/懒加载
- openDetailDrawer() / closeDetailDrawer() - 打开/关闭详情抽屉
- saveDetailData() - 保存详情数据
- copyUrlToClipboard() / fallbackCopyUrl() - 复制链接功能
- showTooltip() / hideTooltip() - 悬停提示气泡
- insertToEditor() - 插入到编辑器
- CSS样式: wp-content/themes/lolimeow/assets/css/admin/media-library/media-modal.css
- .shiroki-media-modal-container - 弹窗容器
- .shiroki-media-modal-grid - 媒体网格
- .shiroki-media-detail-drawer - 详情抽屉
- .shiroki-media-tooltip - 悬停提示气泡
- .shiroki-media-save-notification - 保存通知
- 变量管理: wp-content/themes/lolimeow/assets/css/admin/admin-variables.css
- --admin-gradient-light-blue - 浅蓝色渐变
- --admin-light-blue-
- 浅蓝色系变量

  • AJAX 接口:

- shiroki_get_media_modal_items - 获取媒体列表(支持分页、筛选、搜索)
- shiroki_upload_media_modal - 上传文件
- shiroki_get_media_detail - 获取附件详情
- shiroki_save_media_detail - 保存附件详情
- shiroki_delete_media - 删除附件

 
 
 
 

📚 媒体库懒加载优化

功能描述: 后台「媒体 > 媒体库」页面改为懒加载模式,默认加载8条,滚动自动加载更多,搜索功能不受懒加载影响。

优化内容:

  1. 懒加载机制

- 默认首次加载8条媒体文件
- 向下滚动到底部附近自动加载8条
- 以此类推,直到加载完所有媒体
- 滚动监听使用防抖处理(200ms)

  1. 搜索功能优化

- 搜索模式下不受懒加载限制
- 直接加载所有匹配的搜索结果
- 实时搜索(300ms防抖)
- 搜索时隐藏懒加载触发器

  1. 筛选功能保持懒加载

- 分类筛选(全部、图片、视频、音频、文档、文件)
- 筛选状态下保持每次加载8条
- 切换筛选条件重置分页

  1. 排序功能

- 支持按日期、名称、大小、类型排序
- 点击排序按钮切换升序/降序
- 排序后重置分页重新加载

代码寻找:

  • PHP后端: wp-content/themes/lolimeow/core/module/media-library/fun-media-library.php (Shiroki_Media_Library_UI类)

- ajax_get_media_items() - 获取媒体列表(支持分页和搜索)
- 非搜索模式:posts_per_page = 8,支持分页
- 搜索模式:posts_per_page = -1,加载所有结果
- format_media_item() - 格式化媒体项数据
- filter_document_mime_type() - 文档类型筛选
- filter_file_mime_type() - 文件类型筛选

  • JS前端: wp-content/themes/lolimeow/assets/js/admin/media-library/media-library.js (ShirokiMediaLibrary对象)

- state.perPage = 8 - 每页加载数量配置
- loadMediaItems() - 加载媒体列表
- 滚动监听事件 - 检测底部触发懒加载
- 搜索输入事件 - 搜索时禁用懒加载

  • CSS样式: wp-content/themes/lolimeow/assets/css/admin/media-library/media-library.css

- .shiroki-media-grid - 媒体网格容器
- .shiroki-media-card - 媒体卡片
- .shiroki-media-loading - 加载状态

AJAX 接口:

  • shiroki_get_media_items - 获取媒体列表(支持分页、筛选、搜索)

- 参数: page, per_page, search, filter, sort, order
- 返回: items, has_more, total

文件变更:

  • assets/js/admin/media-library/media-library.js - 添加懒加载逻辑和搜索模式判断
  • core/module/media-library/fun-media-library.php - 后端分页逻辑,搜索模式返回全部

 
 
 

🎨 文章编辑页面玻璃拟态UI风格优化

问题描述: 文章编辑页面(post-new.php / post.php)需要与文章列表网格卡片式布局统一UI风格,采用玻璃拟态设计。

修复文件:

  • assets/css/admin/post-edit/post-edit.css
  • assets/css/markdown-editor.css
  • assets/js/admin/post-edit/post-edit.js
  • core/module/post-edit/fun-post-edit-layout.php

优化内容:

  1. 双栏布局重构

- 左侧:元框区域(分类、标签、发布等)+ 工具栏
- 右侧:主编辑区域(标题、编辑器)
- 使用 CSS Grid 实现响应式布局

  1. 玻璃拟态效果

- 背景使用 backdrop-filter: blur() 实现毛玻璃效果
- 半透明背景色 rgba() 配合玻璃边框
- 统一的圆角设计 var(--admin-radius-lg)

  1. 工具栏整合

- 添加媒体按钮、短代码选择器、MD工具栏、Quicktags工具栏
- 统一移动到左侧工具栏区域
- 彩色按钮样式,每个按钮不同颜色

  1. 分类列表圆角按钮

- 分类复选框改为圆角按钮样式
- 默认淡灰色,选中高亮橙色
- 热门分类特殊标记(淡黄色)

  1. 标签输入优化

- 输入框和添加按钮并排显示
- 输入框默认显示浅色边框,聚焦后加深
- 添加按钮蓝色渐变背景

  1. 标签云同步

- 标签云改为圆角按钮风格
- 与分类列表保持一致的UI风格

  1. 标题输入框

- 添加蓝色 # SVG图标
- 文本缩进避免盖住图标

  1. 特色图片区域

- 设置特色图片按钮自适应宽度
- 虚线边框提示可点击

  1. 发布区域优化

- 发布按钮自适应容器宽度
- 删除操作红色警告风格
- 复制文章按钮整合

  1. 移动端适配

- 小屏幕改为单栏布局
- 工具栏改为浮动按钮+模态框
- 侧边栏隐藏,释放空间

  1. textarea 移动端适配优化

- 问题描述: 在移动端、平板端时,textarea 编辑区域不能像桌面端一样根据内容长度自动扩展,且内容会超出页面宽度
- textarea 高度自适应
- 添加 field-sizing: content 支持现代浏览器根据内容自动调整高度
- 添加 resize: vertical 允许用户手动调整高度
- 设置合理的 min-height 确保编辑区域有足够空间
- 防止内容超出页面宽度
- 所有容器添加 max-width: 100% 限制最大宽度
- 添加 overflow-x: hidden 防止水平溢出
- textarea 添加 width: 100% 强制宽度为100%
- 添加 word-wrap: break-wordwhite-space: pre-wrap 确保长文本自动换行
- 响应式适配
- 平板端 (max-width: 1024px): 分屏模式改为垂直堆叠
- 移动端 (max-width: 782px): 单栏布局,编辑器容器优化
- 超小屏幕 (max-width: 480px): 进一步压缩内边距,优化触摸区域

涉及的 CSS 选择器:

  • .shiroki-editor-layout - 双栏布局主容器
  • .shiroki-editor-sidebar - 左侧元框区域
  • .shiroki-editor-main - 右侧编辑区域
  • .shiroki-editor-toolbar - 工具栏容器
  • #categorychecklist, #categorychecklist-pop - 分类列表
  • .wp-tag-cloud - 标签云
  • .newtag, .tagadd - 标签输入和添加按钮
  • #title - 标题输入框
  • #set-post-thumbnail - 特色图片按钮
  • #publish - 发布按钮
  • #delete-action - 删除操作区域
  • .post-new-php .wp-editor-area, .post-php .wp-editor-area - 编辑器文本域
  • .post-new-php textarea#content, .post-php textarea#content - 内容文本域
  • #wp-content-editor-container textarea#content - 编辑器容器内文本域
  • 各层父容器: #wpbody-content, .shiroki-editor-layout, .shiroki-editor-main, #postdivrich, #wp-content-wrap

涉及的 JS 功能:

  • moveToolbarElements() - 移动工具栏元素到对应容器
  • removeEmptyEditorTools() - 删除空的编辑器工具栏容器
  • addMetaBoxIcons() - 为元框标题添加图标
  • 移动端工具栏浮动按钮和模态框交互

 
 
 

📄 页面列表网格卡片式布局优化

问题描述: 后台「页面 > 所有页面」需要与「文章 > 所有文章」新UI风格保持一致,采用网格卡片式布局,支持多选批量操作。

修复文件:

  • assets/css/admin/post-grid/post-grid.css
  • assets/js/admin/page-grid/page-grid.js
  • core/module/page-grid/fun-page-grid.php

优化内容:

  1. 网格卡片式布局

- 复用文章网格的CSS样式,统一管理
- 卡片显示页面特色图片、标题、作者、父页面、日期
- 状态标签(已发布、草稿、待审核、回收站)
- 密码保护标识、子页面数量标识

  1. 状态筛选栏

- 全部、已发布、草稿、待审核、回收站筛选
- 显示各状态页面数量
- 点击切换筛选条件

  1. 父页面筛选

- 支持按顶级页面筛选
- 支持按特定父页面筛选
- 按钮式切换,圆角设计

  1. 搜索功能

- 独立搜索框,靠右显示
- 实时搜索(500ms防抖)
- 支持按页面标题搜索

  1. 多选批量操作

- 点击卡片或选择圆圈进入多选模式
- 批量操作工具栏显示已选择数量
- 支持功能:复制链接、复制页面、修改父级、批量删除、取消选择

  1. 批量修改父级页面

- 模态框选择新父页面
- 支持搜索过滤父页面
- 排除已选中的页面(防止循环引用)
- 提供「设为顶级页面」选项

  1. 自定义确认对话框

- 批量删除时使用自定义确认对话框
- 与整体UI风格一致(玻璃拟态)
- 显示选中的页面数量(高亮)
- 危险操作红色警告风格

  1. 快捷操作按钮

- 查看、编辑、复制链接、复制页面、回收站/还原
- 复制页面功能(创建副本为草稿)

  1. 防止重复提交

- 批量操作添加状态锁
- 防止重复初始化
- 防止重复点击

  1. 响应式设计

- 桌面端:多列网格布局
- 平板端:减少列数
- 移动端:单列布局,优化触摸区域

涉及的 CSS 选择器:

  • .shiroki-post-wrapper - 页面网格容器
  • .shiroki-post-top-bar - 顶部工具栏(筛选 + 批量操作)
  • .shiroki-post-search-wrapper - 搜索框容器
  • .shiroki-post-toolbar - 父页面筛选工具栏
  • .shiroki-post-grid - 网格容器
  • .shiroki-post-card - 页面卡片
  • .shiroki-post-select-circle - 多选圆圈
  • .shiroki-post-bulk-actions - 批量操作工具栏
  • .shiroki-post-bulk-parent-modal - 批量修改父页面模态框
  • .shiroki-confirm-dialog - 自定义确认对话框

涉及的 JS 功能:

  • ShirokiPageGrid - 页面网格管理器主对象
  • toggleSelection() - 切换卡片选择状态
  • updateBulkActions() - 更新批量操作工具栏显示
  • bulkCopyContent() - 批量复制页面
  • bulkSetParent() - 批量修改父级页面
  • openBulkParentModal() - 打开父页面选择模态框
  • renderBulkParentOptions() - 渲染父页面选项
  • bindBulkParentModalEvents() - 绑定模态框事件
  • showConfirmDialog() - 显示自定义确认对话框
  • bulkDelete() - 批量删除页面

AJAX 接口:

  • shiroki_get_pages - 获取页面列表
  • shiroki_trash_page - 单个页面移到回收站
  • shiroki_restore_page - 还原页面
  • shiroki_bulk_trash_pages - 批量移到回收站
  • shiroki_clone_page - 复制单个页面
  • shiroki_clone_pages - 批量复制页面
  • shiroki_bulk_set_parent - 批量修改父级页面

 
 
 

📝 文章编辑页面工具栏布局优化

问题描述: 在1400px以下屏幕宽度时,左侧工具栏(媒体、短代码、MD工具、Quicktags)占用空间过大,需要优化为浮动按钮+模态框形式,释放编辑区域空间。

修复文件:

  • assets/css/admin/post-edit/post-edit.css
  • core/module/post-edit/fun-post-edit-layout.php

优化内容:

  1. 响应式断点调整

- 断点从991px逐步调整为1400px
- 1400px以下:隐藏侧边栏,释放空间给编辑器
- 1400px以下:原工具栏隐藏,显示浮动按钮

  1. 浮动工具箱按钮

- 位置:页面顶部中间固定 (top: 50px, left: 50%)
- 样式:圆角胶囊按钮,带阴影和玻璃拟态效果
- 图标:🧰 工具箱 / ✕ 关闭
- 点击切换显示/隐藏工具面板

  1. 工具面板模态框

- 玻璃拟态设计风格
- 圆角卡片式布局
- 包含所有工具区域:媒体、短代码、MD工具、Quicktags
- 标题栏:🧰 编辑工具箱 + 关闭按钮
- 背景模糊遮罩,点击背景可关闭

  1. 内容克隆机制

- 使用 cloneNode(true) 复制原工具栏内容
- 保留所有按钮的事件绑定
- 只克隆一次,避免重复操作

  1. 按钮事件委托处理

- 短代码按钮:直接调用 send_to_editor(code) 插入
- MD工具按钮:通过class匹配触发原按钮点击
- Quicktags按钮:通过ID匹配触发原按钮点击
- 添加媒体按钮:触发原媒体按钮点击

  1. 自动关闭窗口

- 点击任意工具按钮后,延迟150ms自动关闭模态框
- 确保操作先执行完成再关闭

  1. 布局调整

- 1400px以下:网格布局改为单列 grid-template-columns: 1fr
- 编辑器区域占满全部宽度
- 侧边栏完全隐藏 display: none !important

涉及的 CSS 选择器:

  • .shiroki-toolbar-float-btn - 浮动工具箱按钮
  • .shiroki-toolbar-mobile-modal - 移动端工具面板模态框
  • .shiroki-toolbar-mobile-modal-backdrop - 模态框背景
  • .shiroki-toolbar-mobile-modal-content - 模态框内容区
  • .shiroki-toolbar-mobile-modal-header - 模态框头部
  • .shiroki-toolbar-mobile-modal-body - 模态框主体
  • .shiroki-toolbar-mobile-modal-footer - 模态框底部
  • @media screen and (max-width: 1400px) - 响应式断点

涉及的 JS 功能:

  • cloneToolbarContent() - 克隆工具栏内容到模态框
  • openModal() - 打开工具面板
  • closeModal() - 关闭工具面板
  • 事件委托处理模态框内按钮点击
  • 各类型按钮的点击处理逻辑

交互流程:

  1. 用户点击浮动按钮 "🧰 工具箱"
  2. 克隆原工具栏内容到模态框(首次)
  3. 显示模态框,按钮变为 "✕ 关闭"
  4. 用户点击工具按钮(如短代码)
  5. 触发对应功能(如插入短代码到编辑器)
  6. 延迟150ms后自动关闭模态框
  7. 按钮恢复为 "🧰 工具箱"

 
 
 

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

微信扫一扫

支付宝赞赏

支付宝扫一扫



评论(2)

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

发表评论

表情 颜文字
插入代码

北京时间 (Asia/Shanghai)

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