Files
wordpress-theme-aksrt/.zcode/plans/plan-sess_ca260372-4464-45b6-9b12-89d77cf89137.md
T
2026-09-04 18:48:57 +08:00

3.1 KiB
Raw Blame History

目标

将 inc/core-hooks/ 下的三个分片收口为唯一实现文件 inc/core-hooks.php,不保留兼容 loader、旧分片 stub 或双路加载;同时清理有充分证据确认无效的代码,不做真实浏览器/视觉效果验收。

实施步骤

  1. 合并实现文件

    • 将 inc/core-hooks/part-1.php、part-2.php、part-3.php 的有效实现按现有加载顺序拼接到 inc/core-hooks.php。
    • 保留现有 defined('ABSPATH') || exit; 保护和原有 hook 注册顺序,避免改变 WordPress 回调优先级、字符串回调和匿名闭包的行为。
    • 在合并文件中保留评论过滤、SMTP/邮件、分类 term meta、资源归档/搜索、Enlighter 白名单、后台互动列、Gutenberg、付费内容等仍被运行时代码或测试覆盖的实现。
    • 去除原文件的 “Shell loader / split into sub-files” 说明和三个 require_once,将文件头改为描述单一核心 hooks 文件的注释,避免留下已不存在的拆分结构说明。
  2. 清理明确死代码

    • 删除 part-2.php 中注册 wp_head 调用未定义 aksrt_print_win_var() 的 legacy runtime bridge;仓库内只有该调用,没有定义、生产者或测试,且 function_exists() 使其当前为空操作。
    • 删除 part-3.php 中原样返回模板的 single_template no-op 过滤器;它不改变模板选择,且没有其他实现依赖。
    • 删除随之失去运行时意义的纯注释占位块(评论提交说明),不触碰实际由 Moderation 等模块实现的评论校验。
    • 不删除后台互动列,尽管它读取旧 meta key;这是可见后台行为,且证据只支持“过时/可能失配”,不足以在本次合并中安全移除或重写。也不删除分类旧字段、资源路由、块注册等看似重复但仍有明确消费者的代码。
  3. 删除旧分片

    • 删除 inc/core-hooks/part-1.php、inc/core-hooks/part-2.php、inc/core-hooks/part-3.php,使 inc/core-hooks.php 成为唯一实现,不做迁移层或双路兼容。
  4. 同步测试引用

    • 将以下契约测试中对分片的直接读取改为 inc/core-hooks.php:
      • tests/widget-system/email-system-contract.test.cjs
      • tests/widget-system/pay-card-contract.test.cjs
      • tests/widget-system/post-visual-contract.test.cjs
    • 不改测试断言语义,仅修正因文件收口导致的路径。
  5. 验证

    • 对新的 inc/core-hooks.php 运行 php -l。
    • 运行上述三个 Node 契约测试,并运行 tests/widget-system/run.php 作为已有回归合同检查(若环境依赖导致失败,如实报告)。
    • 用 rg 检查生产代码和测试中不再残留 core-hooks/part-*.php 路径;排除 .git、vendor、node_modules 和历史 .zcode/plans 文件。
    • 不启动浏览器、不执行真实视觉效果验收,符合请求约束。

工作区安全边界

当前未提交修改仅涉及 assets/css/build/*、assets/js/runtime/* 和 .zcode/plans/*,不涉及本次目标文件;实施时只修改上述 core hooks 文件及三个测试文件,不覆盖或清理现有其他改动。