3.1 KiB
3.1 KiB
目标
将 inc/core-hooks/ 下的三个分片收口为唯一实现文件 inc/core-hooks.php,不保留兼容 loader、旧分片 stub 或双路加载;同时清理有充分证据确认无效的代码,不做真实浏览器/视觉效果验收。
实施步骤
-
合并实现文件
- 将
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 文件的注释,避免留下已不存在的拆分结构说明。
- 将
-
清理明确死代码
- 删除
part-2.php中注册wp_head调用未定义aksrt_print_win_var()的 legacy runtime bridge;仓库内只有该调用,没有定义、生产者或测试,且function_exists()使其当前为空操作。 - 删除
part-3.php中原样返回模板的single_templateno-op 过滤器;它不改变模板选择,且没有其他实现依赖。 - 删除随之失去运行时意义的纯注释占位块(评论提交说明),不触碰实际由
Moderation等模块实现的评论校验。 - 不删除后台互动列,尽管它读取旧 meta key;这是可见后台行为,且证据只支持“过时/可能失配”,不足以在本次合并中安全移除或重写。也不删除分类旧字段、资源路由、块注册等看似重复但仍有明确消费者的代码。
- 删除
-
删除旧分片
- 删除
inc/core-hooks/part-1.php、inc/core-hooks/part-2.php、inc/core-hooks/part-3.php,使inc/core-hooks.php成为唯一实现,不做迁移层或双路兼容。
- 删除
-
同步测试引用
- 将以下契约测试中对分片的直接读取改为
inc/core-hooks.php:tests/widget-system/email-system-contract.test.cjstests/widget-system/pay-card-contract.test.cjstests/widget-system/post-visual-contract.test.cjs
- 不改测试断言语义,仅修正因文件收口导致的路径。
- 将以下契约测试中对分片的直接读取改为
-
验证
- 对新的
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 文件及三个测试文件,不覆盖或清理现有其他改动。