归档式文章列表短代码 [Archives](年/月归类 + 四角年份切换)+ 评论关闭时整块不显示 #15

Closed
opened 2026-10-26 04:30:35 +00:00 by laoyang · 4 comments
Owner

需求一:[Archives] 短代码 —— 归档式全站文章列表

在文章或页面正文里写一条短语 [Archives],该位置就渲染出历史上所有文章的年/月归档列表。

1. 初始展示

  • 刚打开时默认显示今年的文章,按月份归类(1 月 … 12 月,只渲染有文章的月份)。
  • 每月分组标题写明「N 月」+ 该月文章数。

2. 列表条目

每篇文章一行,包含:发布日期 + 标题 + 浏览数 / 评论数 / 点赞数。
(站内数据来源已确认:浏览数 = post meta views;点赞数 = post meta love;
评论数 = get_comments_number()。)

3. 年份导航(四角「上一页 / 下一页」)

  • 左侧按钮 = 上一年,右侧按钮 = 下一年。
  • 🔴 需求原话里的方向要按"年份递减 = 看更早"来理解:
    点右侧「下一年」→ 从今年切到上一年(2026 → 2025),再点 → 2024 …
    点左侧「上一年」→ 反向回到更近的年份。
    文案就写「上一年 / 下一年」,行为与文案一致(不写 上一页/下一页,避免与分页混淆)。
  • 页面或标签页的上下左右四个角落都要有这一对按钮(上左/上右、下左/下右)。
  • 纯 JS 切换,不刷新页面(切年只换列表区域 DOM,URL 用 replaceState 可选同步)。
  • 边界处理:到最早一年时「下一年」禁用;到今年时「上一年」禁用。

4. 实现约束

  • 短代码名:[Archives](大小写不敏感,与 WP 一致)。
  • 数据在服务端一次性预取(一次 SQL 取全站已发布文章的年月 + 三个计数),
    JS 切换只做 DOM 重建,不发起 AJAX 请求(避免每次切年打一次站)。
  • 不使用 wp_get_archives():它按 post_type=post 且格式固定,拿不到计数,
    也不便于按年切片给 JS。

需求二:评论关闭时整块不显示

现状:comments.php 里有两处输出「评论已关闭。」/「评论已关闭,但你可以阅读上面的讨论。」

期望:只要评论关闭,整个评论区域一律不输出 —— 不留空容器、不留任何提示文字。
文章正文结束之后就什么都没有。

  • 判据:comments_open() 为假时,comments.php 输出的 HTML 一个字节都没有
    (不是 display:none,是要真的不渲染)。
  • 注意:已有评论在评论关闭时也要一起不显示(用户明确"什么东西都不要显示")。
## 需求一:`[Archives]` 短代码 —— 归档式全站文章列表 在文章或页面正文里写一条短语 `[Archives]`,该位置就渲染出**历史上所有文章的年/月归档列表**。 ### 1. 初始展示 - 刚打开时**默认显示今年**的文章,按**月份**归类(1 月 … 12 月,只渲染有文章的月份)。 - 每月分组标题写明「N 月」+ 该月文章数。 ### 2. 列表条目 每篇文章一行,包含:发布日期 + 标题 + **浏览数 / 评论数 / 点赞数**。 (站内数据来源已确认:浏览数 = post meta `views`;点赞数 = post meta `love`; 评论数 = `get_comments_number()`。) ### 3. 年份导航(四角「上一页 / 下一页」) - 左侧按钮 = **上一年**,右侧按钮 = **下一年**。 - 🔴 需求原话里的方向要按"年份递减 = 看更早"来理解: 点右侧「下一年」→ 从今年切到**上一年**(2026 → 2025),再点 → 2024 … 点左侧「上一年」→ 反向回到更近的年份。 文案就写「上一年 / 下一年」,行为与文案一致(**不写 上一页/下一页**,避免与分页混淆)。 - 页面或标签页的**上下左右四个角落**都要有这一对按钮(上左/上右、下左/下右)。 - **纯 JS 切换,不刷新页面**(切年只换列表区域 DOM,URL 用 `replaceState` 可选同步)。 - 边界处理:到最早一年时「下一年」禁用;到今年时「上一年」禁用。 ### 4. 实现约束 - 短代码名:`[Archives]`(大小写不敏感,与 WP 一致)。 - 数据在**服务端一次性预取**(一次 SQL 取全站已发布文章的年月 + 三个计数), JS 切换只做 DOM 重建,**不发起 AJAX 请求**(避免每次切年打一次站)。 - 不使用 `wp_get_archives()`:它按 `post_type=post` 且格式固定,拿不到计数, 也不便于按年切片给 JS。 --- ## 需求二:评论关闭时**整块不显示** 现状:`comments.php` 里有两处输出「评论已关闭。」/「评论已关闭,但你可以阅读上面的讨论。」 期望:**只要评论关闭,整个评论区域一律不输出** —— 不留空容器、不留任何提示文字。 文章正文结束之后就什么都没有。 - 判据:`comments_open()` 为假时,`comments.php` 输出的 HTML **一个字节都没有** (不是 `display:none`,是要真的不渲染)。 - 注意:已有评论在评论关闭时也要一起不显示(用户明确"什么东西都不要显示")。
Author
Owner

3.2.46 已开发完成并发布(等待实测确认)

版本号 3.2.46,提交 7047ab3,已推送到 main。
已发到 /theme-update/(update.json 已落 3.2.46),
没有覆盖服务器上的 wp-content/themes/kratos_yang/(仍是 3.2.45)——
需要在 WP 后台点「升级」才会真正生效,请在升级后实测。


需求一:[Archives] 归档短代码

已按工单实现。补充说明几处实现上的判断:

1. 关于「下一年」的方向

按工单里的澄清实现了:右侧「下一年」= 往更早的年份去(2026 → 2025 → 2024),
左侧「上一年」= 往回走到更近的年份。文案写的是「上一年 / 下一年」,
不是「上一页 / 下一页」,避免和分页混淆。

2. 四角导航怎么落地的

列表上方一排、下方一排,每排左右各一个按钮,合计四个。
下方那一排是刻意加的:长列表里滚到底部想切年份,不用再爬回顶部。

3. 地址栏同步

切年份时用 replaceState 把地址同步成 ?arc_year=2025。
好处是切完刷新、或者把链接发给别人,看到的还是同一年;浏览器前进后退也能用。
不存在的年份(比如手工改成 ?arc_year=1998)会自动落到最近的可用年份。

4. 只在用到时加载

assets/js/archives.js 与 assets/css/archives.css 只在页面里真的出现
[Archives] 时才 enqueue。没用到的页面一个字节都不多。

5. 文章很多时的取舍

整年数据一次随页面下发,切年不再请求服务器,所以来回切是瞬间的。
代价是这一页 HTML 会大一些。站内目前几百篇完全不是问题;
真到几千篇再考虑改成按年按需取(那时改的是数据下发方式,前端逻辑不用动)。


需求二:评论关闭时整块消失

已实现,且做得比"不显示文字"更彻底:

  • comments.php 在任何输出之前 if (!comments_open()) return; —— 零字节。
    不是空容器、不是 display:none、不是留白盒子。
  • 已经有评论的老文章,关掉评论后那些评论也不再显示(即"正文之外什么都没有")。
  • 顺带:关评论的页面不再加载约 10KB 的 comments.css / comments.js ——
    既然 DOM 里什么都没有,这两份永远用不到。

⚠️ 一个提醒:如果以后某篇文章想"保留历史评论展示、但不接受新评论",
那就不要关评论,改成在 WP 后台单独关闭评论提交。当前实现是按"关了就全消失"做的。


开发中抓到并修掉的 3 个真实 bug

这三个都是测试把期望值写对之后才显形的,记在这里备查:

① 年份被加了千分位(最隐蔽的一个)

年份标题与导航年份都过了 number_format_i18n(),它把 2025 输出成 「2,025」。
要命的是 PHP 首屏和 JS 切年后走两条不同路径输出同一个年份 ——
只改一边就会出现"首屏 2,025、点一下变 2025"。现在两边都用纯数字,口径统一。

② 月份标题也有同样问题

月份同样过了 number_format_i18n()。目前 1~12 输出正常,但只要站点语言
或格式设置一变就会和 JS 侧 String(m) 不一致。一并改成纯数字。

③ 下排导航被叫成 top

yang_archives_render_nav() 把 ar-nav-top 类名写死在函数里,
而下排也调这个函数生成 ⇒ 下排同时带上了 ar-nav-top。
视觉上被更高特异性的 .ar-foot .ar-nav 规则压住了,所以看不出任何问题 ——
只有断言在数精确类名时才暴露。已改成由调用方传 top / bottom。


验证结果

归档  _archives_unit.php           94 通过 /   0 失败
      _archives_e2e.js            109 通过 /   0 失败
      _archives_e2e_falsify.js    反证 25 真红 / 0 无效
      _archives_unit_falsify.py   反证  6 真红 / 0 无效
评论  _comments_closed_test.php     54 通过 /   0 失败
      _comments_closed_falsify.py 反证 13 真红 / 0 无效
回归  _test_comments.php            64 通过 /   0 失败
      _hl_unit_run.py               24 通过 /   0 失败
全量  96 个 PHP 文件语法检查通过;包内 lint 通过
发布  包结构 / 版本号 / readme(37 个历史版本未截断)/ 下载 md5 全部核对通过

其中端到端测试是在 jsdom 里真跑 archives.js,把 PHP 首屏与 JS 切年后
两条路径在三个年份上逐项比对(class 映射 / 标题 / 日期序列 / 零值标记 /
计数 / 导航结构 / 导航文案 / 年份标题),任何一项不一致都会红。

关于反证

每条判据都做了反向注入,证明它真的会因为缺陷而报红 ——
"断言全绿"本身不算证据。13 + 25 + 6 条注入全部真红,且都红在预期的那条判据上
(红了但不是预期那条也记为无效)。

有一条如实记为无法反证:归档脚本的幂等守卫(data-ar-ready)。
试了三种注入手法都削不红,根因是 jsdom 里两次 eval 会产生两份独立闭包,
各持独立 data 对象,黑盒观察不到"一次点击切两年"这个后果。
已写进测试注释里,没有假装它被覆盖。


请在后台升级后帮我确认这几点

  1. 新建一个页面,正文只写一行 [Archives],发表后打开 —— 应该看到今年的按月归档。
  2. 点「下一年」,确认页面没刷新(滚动位置没跳、没白屏)且年份变成 2025。
  3. 切到某一年后按 F5 刷新,确认还是那一年(地址栏 ?arc_year= 生效)。
  4. 滚到列表底部,确认有第二组「上一年 / 下一年」。
  5. 找一篇关掉评论的文章,确认正文下面什么都没有(没有提示文字、没有空白条)。
  6. 随便换个主题再换回来(或直接看),确认没坏别的地方。

有问题先别关单,直接在这里回帖。确认无误后我再关。

## 3.2.46 已开发完成并发布(等待实测确认) 版本号 `3.2.46`,提交 `7047ab3`,已推送到 `main`。 已发到 `/theme-update/`(`update.json` 已落 3.2.46), **没有覆盖**服务器上的 `wp-content/themes/kratos_yang/`(仍是 3.2.45)—— 需要在 WP 后台点「升级」才会真正生效,请在升级后实测。 --- ### 需求一:`[Archives]` 归档短代码 已按工单实现。补充说明几处实现上的判断: **1. 关于「下一年」的方向** 按工单里的澄清实现了:右侧「下一年」= 往更早的年份去(2026 → 2025 → 2024), 左侧「上一年」= 往回走到更近的年份。文案写的是「上一年 / 下一年」, 不是「上一页 / 下一页」,避免和分页混淆。 **2. 四角导航怎么落地的** 列表**上方一排**、**下方一排**,每排左右各一个按钮,合计四个。 下方那一排是刻意加的:长列表里滚到底部想切年份,不用再爬回顶部。 **3. 地址栏同步** 切年份时用 `replaceState` 把地址同步成 `?arc_year=2025`。 好处是切完刷新、或者把链接发给别人,看到的还是同一年;浏览器前进后退也能用。 不存在的年份(比如手工改成 `?arc_year=1998`)会自动落到最近的可用年份。 **4. 只在用到时加载** `assets/js/archives.js` 与 `assets/css/archives.css` 只在页面里真的出现 `[Archives]` 时才 enqueue。没用到的页面一个字节都不多。 **5. 文章很多时的取舍** 整年数据一次随页面下发,切年不再请求服务器,所以来回切是瞬间的。 代价是这一页 HTML 会大一些。站内目前几百篇完全不是问题; 真到几千篇再考虑改成按年按需取(那时改的是数据下发方式,前端逻辑不用动)。 --- ### 需求二:评论关闭时整块消失 已实现,且做得比"不显示文字"更彻底: - `comments.php` 在**任何输出之前** `if (!comments_open()) return;` —— **零字节**。 不是空容器、不是 `display:none`、不是留白盒子。 - 已经有评论的老文章,关掉评论后那些评论也不再显示(即"正文之外什么都没有")。 - 顺带:关评论的页面不再加载约 10KB 的 `comments.css` / `comments.js` —— 既然 DOM 里什么都没有,这两份永远用不到。 ⚠️ 一个提醒:如果以后某篇文章想"保留历史评论展示、但不接受新评论", 那就**不要关评论**,改成在 WP 后台单独关闭评论提交。当前实现是按"关了就全消失"做的。 --- ### 开发中抓到并修掉的 3 个真实 bug 这三个都是**测试把期望值写对之后**才显形的,记在这里备查: **① 年份被加了千分位(最隐蔽的一个)** 年份标题与导航年份都过了 `number_format_i18n()`,它把 2025 输出成 **「2,025」**。 要命的是 PHP 首屏和 JS 切年后走两条不同路径输出同一个年份 —— 只改一边就会出现"首屏 2,025、点一下变 2025"。现在两边都用纯数字,口径统一。 **② 月份标题也有同样问题** 月份同样过了 `number_format_i18n()`。目前 1~12 输出正常,但只要站点语言 或格式设置一变就会和 JS 侧 `String(m)` 不一致。一并改成纯数字。 **③ 下排导航被叫成 top** `yang_archives_render_nav()` 把 `ar-nav-top` 类名写死在函数里, 而**下排也调这个函数**生成 ⇒ 下排同时带上了 `ar-nav-top`。 视觉上被更高特异性的 `.ar-foot .ar-nav` 规则压住了,所以**看不出任何问题** —— 只有断言在数精确类名时才暴露。已改成由调用方传 `top` / `bottom`。 --- ### 验证结果 ``` 归档 _archives_unit.php 94 通过 / 0 失败 _archives_e2e.js 109 通过 / 0 失败 _archives_e2e_falsify.js 反证 25 真红 / 0 无效 _archives_unit_falsify.py 反证 6 真红 / 0 无效 评论 _comments_closed_test.php 54 通过 / 0 失败 _comments_closed_falsify.py 反证 13 真红 / 0 无效 回归 _test_comments.php 64 通过 / 0 失败 _hl_unit_run.py 24 通过 / 0 失败 全量 96 个 PHP 文件语法检查通过;包内 lint 通过 发布 包结构 / 版本号 / readme(37 个历史版本未截断)/ 下载 md5 全部核对通过 ``` 其中端到端测试是在 jsdom 里真跑 `archives.js`,把 **PHP 首屏**与 **JS 切年后** 两条路径在三个年份上逐项比对(class 映射 / 标题 / 日期序列 / 零值标记 / 计数 / 导航结构 / 导航文案 / 年份标题),任何一项不一致都会红。 ### 关于反证 每条判据都做了反向注入,证明它真的会因为缺陷而报红 —— "断言全绿"本身不算证据。13 + 25 + 6 条注入全部真红,且都红在**预期的那条判据**上 (红了但不是预期那条也记为无效)。 有一条如实记为**无法反证**:归档脚本的幂等守卫(`data-ar-ready`)。 试了三种注入手法都削不红,根因是 jsdom 里两次 eval 会产生两份**独立闭包**, 各持独立 `data` 对象,黑盒观察不到"一次点击切两年"这个后果。 已写进测试注释里,没有假装它被覆盖。 --- ### 请在后台升级后帮我确认这几点 1. 新建一个页面,正文只写一行 `[Archives]`,发表后打开 —— 应该看到今年的按月归档。 2. 点「下一年」,确认**页面没刷新**(滚动位置没跳、没白屏)且年份变成 2025。 3. 切到某一年后**按 F5 刷新**,确认还是那一年(地址栏 `?arc_year=` 生效)。 4. 滚到列表底部,确认有第二组「上一年 / 下一年」。 5. 找一篇关掉评论的文章,确认正文下面**什么都没有**(没有提示文字、没有空白条)。 6. 随便换个主题再换回来(或直接看),确认没坏别的地方。 有问题先别关单,直接在这里回帖。确认无误后我再关。
Author
Owner

交付状态确认 + 一处数字口径修正

一、先修正我上一轮评论里的一个数字(3.2.46 的反证条数)

上一轮评论和我提交的 Git 信息里写的是「_archives_e2e_falsify.js 反证 25 真红」。
这个数字是错的,刚才复核时发现并已修正为 21。

原因不是少跑了用例,而是统计口径把三种不同性质的东西混进了一个计数器:

我脚本里的 ok() 调用处 性质 条数
⓪「基线:产品原件必须全绿」 前提检查,不是反证 1
① / ② 各条注入(改了 → 必须变红) 这才是反证 21
③「产品文件已还原」等收尾自检 完整性检查,不是反证 2

汇总行直接打印 revOk,于是报出 24;文档里又写成了 25。
真实注入是 21 条,另外 3 条根本不是反证。

已经改的成分开的两个计数器,现在输出是这样:

反证:注入真红 21 条,无效 0 条
      (另有基线 1 条 + 收尾自检 2 条,合计 OK 24 条)

这样任何人一眼能对上账。同时把散落在提交信息、上一轮评论、记忆里的旧数字都改了。

为什么值得单独说:这个数字不参与任何判断,脚本一直是绿的、退出码 0、
无效 0 条 —— 所有指标都正常,流水线永远抓不到它,只能靠人对着构成去数。
它和"测试报告里写着 137 个用例、实际只跑了 127 个"是同一类问题,
只是一次是多算、一次是少算。已记进踩坑清单。

产品代码没有因此改动任何一个字节(已核验:提交 7047ab3 的工作区干净)。


二、六套件终验(刚重跑)

2j  评论关闭零输出(_comments_closed_test.php)        通过  54 /   0 失败
2k  评论关闭反向验证(_comments_closed_falsify.py)    真红  13 /   0 无效
2l  归档单测(_archives_unit.php)                     通过  94 /   0 失败
2m  归档端到端(_archives_e2e.js)                     通过 109 /   0 失败
2n  归档端到端反向(_archives_e2e_falsify.js)         真红  21 /   0 无效
2o  归档源码级反向(_archives_unit_falsify.py)        真红   6 /   0 无效
--------------------------------------------------------------
失败套件数:0

三、发布物核验(刚重新下载比对)

检查项 结果
update.json 里的 version 3.2.46
下载 kratos_yang.zip HTTP 200,4,738,351 字节
包内文件总数 235
包内 style.css 的 Version 3.2.46
6 个关键文件是否都在包里 全部在(inc/theme-archives.php、assets/js/archives.js、assets/css/archives.css、comments.php、inc/theme-comments.php、style.css)
包内源码 vs 仓库源码(逐文件字节比对) 6 个全部一致,不一致 0 个
readme.html 含 3.2.40 ~ 3.2.46,37 个历史版本标题未截断
服务器 wp-content/themes/kratos_yang/ 仍是 3.2.45,未被覆盖
服务器主题目录里是否误入新文件 inc/theme-archives.php / assets/js/archives.js 均不存在(符合预期)

四、请你在后台点升级后这样验(工单先不关)

需求一 [Archives]

  1. 随便找一篇页面(不动正式文章),正文里单独一行写 [Archives],保存。
  2. 打开它,确认:
    • 直接显示今年,按月份分组(只出现有文章的月份);
    • 每篇一行,带日期、标题,右侧有浏览 / 评论 / 点赞三个数字;
    • 页面四个角落各有一对「上一年 / 下一年」;
    • 点右侧「下一年」→ 年份变成 2025,页面没有刷新(滚动位置不跳、不白屏),
      地址栏同步成 ?arc_year=2025;
    • 一直点到最早一年,「下一年」会变灰不可点。
  3. 可选参数:[Archives year="2025"] 指定首次打开显示哪年;[Archives month="0"] 不按月分组。

需求二 评论关闭

  1. 找一篇已有评论的文章,把它的「允许评论」取消掉,保存。
  2. 打开它,滚到底:正文结束就什么都没有——没有评论框、没有「评论已关闭」字样、
    也没有历史评论列表(这是你要的"正文之外全部结束")。
  3. 再把它改回允许评论,确认评论区正常出现(含原有评论)。

第 3 步建议顺手做一下:确认我没有把"允许评论"的正常路径一起弄坏。

有问题直接在本工单回复,我改完再关。

## 交付状态确认 + 一处数字口径修正 ### 一、先修正我上一轮评论里的一个数字(3.2.46 的反证条数) 上一轮评论和我提交的 Git 信息里写的是「`_archives_e2e_falsify.js` 反证 **25** 真红」。 **这个数字是错的**,刚才复核时发现并已修正为 **21**。 原因不是少跑了用例,而是**统计口径把三种不同性质的东西混进了一个计数器**: | 我脚本里的 `ok()` 调用处 | 性质 | 条数 | |---|---|---| | ⓪「基线:产品原件必须全绿」 | 前提检查,**不是**反证 | 1 | | ① / ② 各条注入(改了 → 必须变红) | **这才是反证** | 21 | | ③「产品文件已还原」等收尾自检 | 完整性检查,**不是**反证 | 2 | 汇总行直接打印 `revOk`,于是报出 24;文档里又写成了 25。 **真实注入是 21 条**,另外 3 条根本不是反证。 已经改的成分开的两个计数器,现在输出是这样: ``` 反证:注入真红 21 条,无效 0 条 (另有基线 1 条 + 收尾自检 2 条,合计 OK 24 条) ``` 这样任何人一眼能对上账。同时把散落在提交信息、上一轮评论、记忆里的旧数字都改了。 **为什么值得单独说**:这个数字不参与任何判断,脚本一直是绿的、退出码 0、 `无效 0 条` —— 所有指标都正常,流水线永远抓不到它,只能靠人对着构成去数。 它和"测试报告里写着 137 个用例、实际只跑了 127 个"是同一类问题, 只是一次是多算、一次是少算。已记进踩坑清单。 > 产品代码**没有因此改动任何一个字节**(已核验:提交 `7047ab3` 的工作区干净)。 --- ### 二、六套件终验(刚重跑) ``` 2j 评论关闭零输出(_comments_closed_test.php) 通过 54 / 0 失败 2k 评论关闭反向验证(_comments_closed_falsify.py) 真红 13 / 0 无效 2l 归档单测(_archives_unit.php) 通过 94 / 0 失败 2m 归档端到端(_archives_e2e.js) 通过 109 / 0 失败 2n 归档端到端反向(_archives_e2e_falsify.js) 真红 21 / 0 无效 2o 归档源码级反向(_archives_unit_falsify.py) 真红 6 / 0 无效 -------------------------------------------------------------- 失败套件数:0 ``` ### 三、发布物核验(刚重新下载比对) | 检查项 | 结果 | |---|---| | `update.json` 里的 version | `3.2.46` | | 下载 `kratos_yang.zip` | HTTP 200,4,738,351 字节 | | 包内文件总数 | 235 | | 包内 `style.css` 的 Version | `3.2.46` | | 6 个关键文件是否都在包里 | 全部在(`inc/theme-archives.php`、`assets/js/archives.js`、`assets/css/archives.css`、`comments.php`、`inc/theme-comments.php`、`style.css`) | | 包内源码 vs 仓库源码(逐文件字节比对) | **6 个全部一致,不一致 0 个** | | `readme.html` | 含 3.2.40 ~ 3.2.46,**37 个历史版本标题未截断** | | 服务器 `wp-content/themes/kratos_yang/` | 仍是 **3.2.45**,**未被覆盖** | | 服务器主题目录里是否误入新文件 | `inc/theme-archives.php` / `assets/js/archives.js` 均**不存在**(符合预期) | --- ### 四、请你在后台点升级后这样验(工单先不关) **需求一 `[Archives]`** 1. 随便找一篇**页面**(不动正式文章),正文里单独一行写 `[Archives]`,保存。 2. 打开它,确认: - 直接显示**今年**,按月份分组(只出现有文章的月份); - 每篇一行,带日期、标题,右侧有**浏览 / 评论 / 点赞**三个数字; - **页面四个角落**各有一对「上一年 / 下一年」; - 点右侧「下一年」→ 年份变成 2025,**页面没有刷新**(滚动位置不跳、不白屏), 地址栏同步成 `?arc_year=2025`; - 一直点到最早一年,「下一年」会变灰不可点。 3. 可选参数:`[Archives year="2025"]` 指定首次打开显示哪年;`[Archives month="0"]` 不按月分组。 **需求二 评论关闭** 1. 找一篇**已有评论**的文章,把它的「允许评论」取消掉,保存。 2. 打开它,滚到底:**正文结束就什么都没有**——没有评论框、没有「评论已关闭」字样、 也**没有历史评论列表**(这是你要的"正文之外全部结束")。 3. 再把它改回允许评论,确认评论区正常出现(含原有评论)。 > 第 3 步建议顺手做一下:确认我没有把"允许评论"的正常路径一起弄坏。 有问题直接在本工单回复,我改完再关。
Author
Owner

补充:需求一的 [Archives] 在 3.2.46 里其实只有全小写能用

你在 /blogtime 实测发现 [Archives] 没反应,查下来是我这边的 bug(已在 #17 修,3.2.47 已发布):

3.2.46 只注册了小写 archives,而 WordPress 短代码标签区分大小写,
所以只有 [archives] 能用、[Archives] 原样输出。跟 markdown 插件无关,数据库里的内容是干净的。

3.2.47 已改为同时注册 archives / Archives / ARCHIVES 三种写法。

⇒ 需求一的验收请以 3.2.47 为准(后台点升级后,/blogtime 不用改内容就应该自己渲染出来)。

需求二(评论关闭整块不显示)不受影响,3.2.46 就是对的。

## 补充:需求一的 `[Archives]` 在 3.2.46 里其实只有全小写能用 你在 `/blogtime` 实测发现 `[Archives]` 没反应,查下来是**我这边的 bug**(已在 #17 修,3.2.47 已发布): 3.2.46 只注册了小写 `archives`,而 WordPress 短代码标签**区分大小写**, 所以只有 `[archives]` 能用、`[Archives]` 原样输出。跟 markdown 插件无关,数据库里的内容是干净的。 3.2.47 已改为同时注册 `archives` / `Archives` / `ARCHIVES` 三种写法。 ⇒ **需求一的验收请以 3.2.47 为准**(后台点升级后,`/blogtime` 不用改内容就应该自己渲染出来)。 需求二(评论关闭整块不显示)不受影响,3.2.46 就是对的。
Author
Owner

按用户确认收尾,交付见上条发布评论。

交付版本:3.2.46(归档短代码 [Archives] + 评论关闭整块零输出),后续 #17 补了大小写问题

用户已验收,关闭本单。

按用户确认收尾,交付见上条发布评论。 交付版本:3.2.46(归档短代码 [Archives] + 评论关闭整块零输出),后续 #17 补了大小写问题 用户已验收,关闭本单。
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#15