用途:从零创建新的 WordPress 区块时使用此技能;修改已有区块时不适用。生成时始终在当前文件夹内进行,遵循附带 references/ 目录中的模板与规范。
主要能力与约定:生成区块前先阅读 references/artefact-templates.md(必需,优先阅读,含准确路径、资源引用与构建管线细节),并按其中模板严格执行;按需阅读 file-templates.md(各文件类型指南)、inner-blocks.md(使用 InnerBlocks 或子区块时)、dynamic-vs-static.md(决定动态、静态或交互渲染时)、interactivity-api.md(交互区块需要前端 JavaScript 时)。
代码规范:PHP 开标签前不留空格,文件末尾不超过一个空行;使用 block props 保证区块可在画布中选中;区块名 slug 使用小写;最后一个 PHP 开标签保持打开不闭合;不生成规范之外的代码(如 REST 控制器、PHP 类等非标准区块代码);除非用户明确要求,否则前后端行为保持一致;编辑器中不使用占位符;主动添加检查器或区块工具栏控件以增强可交互性与可定制性;PHP 函数不重复声明,始终用 function_exists 保护;不创建额外的说明或安装文档 markdown 文件;确保区块正确注册并能在前端渲染;尽量使用 @wordpress/block-editor 的 InnerBlocks 组件。
交互区块:需要前端交互(点击、切换、手风琴、模态、轮播、计数器、标签页、搜索筛选)时,区块必须是动态的(使用 render.php,不使用 save.js);view.js 使用原生 JavaScript 与标准 DOM API(querySelector、addEventListener、classList 等),不使用 WordPress Interactivity API;block.json 中使用 "viewScript": "file:./view.js"(不是 viewScriptModule);render.php 使用标准 HTML 属性与 CSS 类供 JavaScript 定位;在区块外层用 data-* 属性把服务端值传给 JavaScript。
限制:仅适用于新建区块,不适用于修改现有区块;须遵守上述规范,不生成规范外代码或额外文档。