自动头像提为独立标签页(后台找不到该选项) #6

Closed
opened 2026-10-25 10:59:05 +00:00 by laoyang · 1 comment
Owner

现象

3.2.36 升级完成后,后台「主题设置」里找不到「自动头像」这一项。

排查结论(已实测,不是猜测)

功能本身是正常的,代码没有问题。 在线上服务器实测:

  1. 服务器主题目录 style.css 已是 Version: 3.2.36,inc/theme-avatar.php(67 KB)、inc/avatar-styles/(14 个)全部到位,theme-options.php 与本地逐字节一致(md5 ce3058506afc0db8f0034c26dde7ecb7)。
  2. 用真实后台登录 cookie 抓取 admin.php?page=kratos_options 的 HTML(510,844 字节):section-a_auto_enable、section-a_auto_style 都在,「自动头像」出现 3 次,14 个风格卡片渲染出 97 处 .of-avatar-style,CSS/JS 全部下发。
  3. 用无头浏览器实测几何 + 交互:14 项检查全部通过。勾选开关后风格列表正常出现(14 个卡片 / 14 个单选 / 恰好 1 个选中),高度 1752px。

真正的原因:位置太靠下

「自动头像」被放在「全站配置」这一页的第 9 项,纵坐标 1058px:

条目 纵坐标(viewport 高 1000) 是否首屏可见
图片 Logo 130 可见
Favicon 图片 223 可见
背景颜色 368 可见
Chrome 导航栏颜色 456 可见
404 页面图片 544(高 301px) 可见
前台管理员导航 845 可见
CSS 动画库 916 可见
Gravatar 加速 987 勉强在边缘
自动头像 1058 需要滚动
禁止生成缩略图 1140 需滚动
Gutenberg 编辑器 1211 需滚动

其中「404 页面图片」一项就占了 301px,是把它顶下去的主要原因。

同时,左侧 12 个标签页里没有任何一个带「头像」字样,只扫标签栏也找不出来。

→ 结论:不是 bug,是摆放位置不合理。用户的原话是「最上面的一个复选框」,它本来就该是一块独立的东西。

需求

把「自动头像」从「全站配置」里提出来,做成独立标签页,放在「全站配置」之后(第 2 个位置)。

  • 标签栏一眼能看到「自动头像」,不用滚动、不用猜它在哪个分组里。
  • 进入该标签页后,第一个控件就是开关复选框,勾选后下方出现 14 套风格列表 —— 完全符合原始需求的表述。
  • 「全站配置」回归它原本的 10 项,不再被这块撑长。

验收标准

  1. 后台标签栏出现「自动头像」,位置在「全站配置」之后。
  2. 进入该标签页,第一项是「自动头像」复选框,下面才是风格列表。
  3. 未勾选时风格列表不可见;勾选后立刻出现 14 套风格 + 预览。
  4. 点选风格即时预览、保存后生效,与 3.2.36 行为一致。
  5. 「全站配置」里不再有这两项,其余 10 项顺序不变。
  6. 所有既有守卫脚本(含按标签名定位的断言)不得因序号变化而误判 —— 标签定位一律按文字,不按序号。
  7. 真实浏览器几何验证:标签栏可见「自动头像」;该标签页内复选框无需滚动即可见。
  8. 反向验证:把位置改回「全站配置」内部后,判据必须变红。

涉及范围

  • inc/theme-options.php:把两个选项从「全站配置」组移到独立 heading 分组。
  • inc/theme-avatar.php:如需调整 admin CSS/JS 的分组定位,同步改。
  • 守卫脚本:位置断言改为「在独立分组内」,另加「标签栏有该标签」的断言。
  • 版本号 3.2.36 → 3.2.37。

备注

  • 发布仍走 /theme-update/ 通道(zip + readme + update.json),不覆盖服务器主题目录。
  • 3.2.36 的功能代码不返工,只调整摆放位置。
## 现象 3.2.36 升级完成后,后台「主题设置」里找不到「自动头像」这一项。 ## 排查结论(已实测,不是猜测) **功能本身是正常的,代码没有问题。** 在线上服务器实测: 1. 服务器主题目录 `style.css` 已是 `Version: 3.2.36`,`inc/theme-avatar.php`(67 KB)、`inc/avatar-styles/`(14 个)全部到位,`theme-options.php` 与本地逐字节一致(md5 `ce3058506afc0db8f0034c26dde7ecb7`)。 2. 用真实后台登录 cookie 抓取 `admin.php?page=kratos_options` 的 HTML(510,844 字节):`section-a_auto_enable`、`section-a_auto_style` 都在,「自动头像」出现 3 次,14 个风格卡片渲染出 97 处 `.of-avatar-style`,CSS/JS 全部下发。 3. 用无头浏览器实测几何 + 交互:**14 项检查全部通过**。勾选开关后风格列表正常出现(14 个卡片 / 14 个单选 / 恰好 1 个选中),高度 1752px。 ## 真正的原因:位置太靠下 「自动头像」被放在「全站配置」这一页的**第 9 项**,纵坐标 1058px: | 条目 | 纵坐标(viewport 高 1000) | 是否首屏可见 | |---|---|---| | 图片 Logo | 130 | 可见 | | Favicon 图片 | 223 | 可见 | | 背景颜色 | 368 | 可见 | | Chrome 导航栏颜色 | 456 | 可见 | | 404 页面图片 | 544(高 301px) | 可见 | | 前台管理员导航 | 845 | 可见 | | CSS 动画库 | 916 | 可见 | | Gravatar 加速 | 987 | 勉强在边缘 | | **自动头像** | **1058** | **需要滚动** | | 禁止生成缩略图 | 1140 | 需滚动 | | Gutenberg 编辑器 | 1211 | 需滚动 | 其中「404 页面图片」一项就占了 301px,是把它顶下去的主要原因。 同时,左侧 12 个标签页里**没有任何一个带「头像」字样**,只扫标签栏也找不出来。 → 结论:不是 bug,是**摆放位置不合理**。用户的原话是「最上面的一个复选框」,它本来就该是一块独立的东西。 ## 需求 把「自动头像」从「全站配置」里**提出来,做成独立标签页**,放在「全站配置」之后(第 2 个位置)。 - 标签栏一眼能看到「自动头像」,不用滚动、不用猜它在哪个分组里。 - 进入该标签页后,**第一个控件就是开关复选框**,勾选后下方出现 14 套风格列表 —— 完全符合原始需求的表述。 - 「全站配置」回归它原本的 10 项,不再被这块撑长。 ## 验收标准 1. 后台标签栏出现「自动头像」,位置在「全站配置」之后。 2. 进入该标签页,第一项是「自动头像」复选框,下面才是风格列表。 3. 未勾选时风格列表不可见;勾选后立刻出现 14 套风格 + 预览。 4. 点选风格即时预览、保存后生效,与 3.2.36 行为一致。 5. 「全站配置」里不再有这两项,其余 10 项顺序不变。 6. 所有既有守卫脚本(含按标签名定位的断言)不得因序号变化而误判 —— 标签定位一律按文字,不按序号。 7. 真实浏览器几何验证:标签栏可见「自动头像」;该标签页内复选框无需滚动即可见。 8. 反向验证:把位置改回「全站配置」内部后,判据必须变红。 ## 涉及范围 - `inc/theme-options.php`:把两个选项从「全站配置」组移到独立 heading 分组。 - `inc/theme-avatar.php`:如需调整 admin CSS/JS 的分组定位,同步改。 - 守卫脚本:位置断言改为「在独立分组内」,另加「标签栏有该标签」的断言。 - 版本号 `3.2.36` → `3.2.37`。 ## 备注 - 发布仍走 `/theme-update/` 通道(zip + readme + update.json),**不覆盖服务器主题目录**。 - 3.2.36 的功能代码不返工,只调整摆放位置。
Author
Owner

3.2.37 已发布到更新通道

改动:把「自动头像」提成独立标签页,插在「全站配置」之后、「顶部导航」之前,成为标签栏第 2 个。开关显示名从「自动头像」改为「启用自动头像」,避免与标签页同名。

位置对比

3.2.36 3.2.37
所在分组 全站配置(第 9 项) 自动头像(独立页,第 2 个)
开关前面有几个控件 8 个 0 个
纵坐标 1058px(视口 1000px,不滚看不见) 134px
左侧标签栏 无「头像」字样 第 2 个即「自动头像」

inc/theme-avatar.php 一行没动 —— 它的显隐 CSS 与 JS 全部按 section id 定位,不依赖分组序号。

验证:分组结构 17/0 · 几何+交互 29/0 · 几何反向 6 项被捕获 · 源码守卫 20/0(反向 12/12)· 包内契约 30/0(反向 8/8)· 逐字节渲染 84/0 · 无 mbstring 84/0 · PHP 8.4.25 与 8.5.12 严格错误级别各 43/0 · 回归 88/0、55/0、24/0、56/0、77/0、13/0 · 89 个 php 全过 lint。

线上状态:update.json = 3.2.37,zip 与 readme 均 200 且下载内容与磁盘 md5 一致(c7196086fe10e2f578830a6909e7aaee)。服务器主题目录仍是 3.2.36,未被覆盖(只走 theme-update/ 通道)。

Git 提交 5c7a9e2。

下一步需要你在 WP 后台点一次升级,装完才会看到「自动头像」标签页。确认没问题后我再关工单。

## 3.2.37 已发布到更新通道 **改动**:把「自动头像」提成独立标签页,插在「全站配置」之后、「顶部导航」之前,成为标签栏第 2 个。开关显示名从「自动头像」改为「启用自动头像」,避免与标签页同名。 **位置对比** | | 3.2.36 | 3.2.37 | |---|---|---| | 所在分组 | 全站配置(第 9 项) | 自动头像(独立页,第 2 个) | | 开关前面有几个控件 | 8 个 | 0 个 | | 纵坐标 | 1058px(视口 1000px,不滚看不见) | 134px | | 左侧标签栏 | 无「头像」字样 | 第 2 个即「自动头像」 | `inc/theme-avatar.php` 一行没动 —— 它的显隐 CSS 与 JS 全部按 section id 定位,不依赖分组序号。 **验证**:分组结构 17/0 · 几何+交互 29/0 · 几何反向 6 项被捕获 · 源码守卫 20/0(反向 12/12)· 包内契约 30/0(反向 8/8)· 逐字节渲染 84/0 · 无 mbstring 84/0 · PHP 8.4.25 与 8.5.12 严格错误级别各 43/0 · 回归 88/0、55/0、24/0、56/0、77/0、13/0 · 89 个 php 全过 lint。 **线上状态**:`update.json` = 3.2.37,zip 与 readme 均 200 且下载内容与磁盘 md5 一致(`c7196086fe10e2f578830a6909e7aaee`)。服务器主题目录仍是 3.2.36,**未被覆盖**(只走 `theme-update/` 通道)。 Git 提交 `5c7a9e2`。 **下一步需要你在 WP 后台点一次升级**,装完才会看到「自动头像」标签页。确认没问题后我再关工单。
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: laoyang/wordpress-kratos-yang#6