AI 摘要
开心宝夜深了,窗外的城市已经安静下来,只有键盘敲击的声音在房间里回响。这是一个关于代码、规范和兼容性的故事,一个在 WordPress 6.9 和 Abilities API 0.5.0 更新后,不得不面对的修复之旅。
初遇问题:那些消失的能力
一切始于一个错误日志。当 WordPress 更新到 6.9 版本,Abilities API 也同步更新到 0.5.0 后,系统开始报错:三个核心的 MCP 能力无法找到——discover-abilities、get-ability-info、execute-ability。它们就像突然消失了一样,在代码的海洋中找不到踪迹。
起初,我以为这只是简单的路径问题,或者是某个文件没有正确加载。但深入调查后,真相浮出水面:这不是路径的问题,而是钩子名称的变化。WordPress Abilities API 在 0.5.0 版本中,将钩子名称从 abilities_api_init 改为了 wp_abilities_api_init,从 abilities_api_categories_init 改为了 wp_abilities_api_categories_init。
这就像城市改名一样,虽然地址没变,但门牌号换了。我们的插件还在用旧的门牌号敲门,自然找不到正确的入口。
第二个挑战:JSON Schema 的规范
解决了钩子问题后,本以为可以松一口气,但新的错误又出现了。这次是关于 JSON Schema 验证的:True is not of type 'array'。错误信息指向了 required 字段。
原来,在 JSON Schema 规范中,required 字段不应该出现在属性定义里,而应该在对象级别作为一个数组存在。我们之前的代码在属性定义中使用了 'required' => true,这是错误的。正确的做法是在对象级别使用 'required' => ['field1', 'field2']。
这就像写文章时,把段落标题放在了段落中间,而不是段落开头。虽然看起来差不多,但格式规范要求它必须在正确的位置。
修复之路:一次次的精确调整
修复工作开始了。首先是钩子名称的更新,涉及了 5 个插件文件:
- zibll-ai-summary 插件
- Database-MCP-Service 的钩子文件
- Content-MCP-Service 的钩子文件
- Public-MCP-Service 的钩子文件
- Zibll-BBS-MCP-Service 的钩子文件
然后是 JSON Schema 的修复。这次涉及了 30 个能力文件,分布在三个服务中:
- Public-MCP-Service:8 个文件,包括创建文章、更新文章、查询文章等功能
- Database-MCP-Service:22 个文件,包括数据库分析、查询、清理、域名替换等功能
每一个文件都需要仔细检查,确保移除了属性定义中的 'required' => true,同时保留了对象级别的 'required' => [...] 数组。这是一项需要耐心和细致的工作,就像整理书架,每一本书都要放在正确的位置。
思考:规范的意义
这次修复让我思考了很多。为什么要有这些规范?为什么钩子名称要改变?为什么 JSON Schema 要如此严格?
规范的存在,是为了让代码更加清晰、可维护、可扩展。当 WordPress 团队决定改变钩子名称时,他们是为了更好的命名空间管理,避免与其他插件冲突。当 JSON Schema 要求 required 必须在对象级别时,这是为了保持与标准规范的一致性,让代码能够被正确验证和理解。
我们作为开发者,需要跟上这些变化,理解这些规范背后的原因,然后调整我们的代码。这不是负担,而是一种成长。
总结:一次完整的更新
最终,所有的修复都完成了。30 个文件被更新,所有的钩子名称都改为了新版本,所有的 JSON Schema 都符合了规范。系统重新运行起来,那些消失的能力又回来了,那些验证错误也消失了。
这是一次关于兼容性的修复,也是一次关于规范的学习。在代码的世界里,变化是常态,适应变化、理解规范、保持代码质量,是我们作为开发者需要持续做的事情。
夜深了,修复完成了,代码重新运行起来。窗外的城市依然安静,但我知道,明天当用户使用这些功能时,一切都会顺畅如初。这就是我们工作的意义——让技术服务于人,让代码变得更加可靠和规范。
文章法典(文章版权声明)
- ◆ 领地名称:开心宝要塞(开心宝)
- ◆ 永久坐标:https://joyb.cc
- ◆ 部分知识来自冒险者笔记,仅供修习参考(本站文章部分内容来源于网络,仅供学习参考,如有侵权请联系站长删除)
- ◆ 资源配方不构成建造建议(本站资源不构成任何投资建议,仅代表个人观点)
- ◆ 发现危险物品请立即通知卫兵(严禁发布违法信息,访客发现请立即举报)
- ◆ 失效传送门请告知管理员更新(资源链接失效请联系我们,我们会及时更新)







暂无评论内容