ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Elementor v4 扩展路由指南:用 atomic-builder-extend 技能分发器选择正确的原子化扩展路径

Elementor v4 扩展路由指南:用 atomic-builder-extend 技能分发器选择正确的原子化扩展路径 Elementor v4 扩展路由指南用 atomic-builder-extend 技能分发器选择正确的原子化扩展路径【免费下载链接】elementorThe most advanced frontend drag drop page builder. Create high-end, pixel perfect websites at record speeds. Any theme, any page, any design.项目地址: https://gitcode.com/GitHub_Trending/el/elementorElementor v4atomic builder的扩展入口分散在 widget 创建、prop type 扩展、动态标签、编辑器包、变量、CSS 转换与交互等多个子领域选错路径会导致在 v3 钩子上空耗或误改 Core。本文基于仓库中的路由技能 SKILL.md讲清这个意图路由器的四步检查清单、External/Internal 作用域划分和完整决策表并结合 modules/atomic-widgets/module.php 等源码验证实验门控与公开钩子的真实行为帮助你在动手前判断当前需求能从第三方插件交付还是必须向 Elementor Core 提交 PR。路由器的定位只分发不实现atomic-builder-extend是.cursor/skills/目录下 8 个 v4 扩展技能中的入口技能。它的 SKILL frontmatter 明确声明了适用场景Pick the right Elementor v4 skill. Use when you want to create a widget, extend prop types, add a dynamic tag, add an editor package, extend variables, or run an Internal Core-only skill (CSS converter / interactions).原文档特别强调了一个容易被误用的事实该路由器本身不是实现能力not an implementation capability。它不定义钩子、不定义路径、不产生可交付结果唯一职责是把开发意图路由到对应子技能并按二元的External第三方插件可交付或Internal需要 Core PR作用域进行分类。权威文档Source of truth位于 docs/atomic-builder/README.md各技能只是链接过去的检查清单不复制文档树可运行的参考示例在 docs/atomic-builder/examples/README.md整合的第三方演示插件在 examples/example-plugin/。检查清单四步法路由技能给出了一条严格顺序的执行清单确认 v4 上下文检查实验e_atomic_elements以及常见的e_opt_in_v4。要点是不存在独立的e_classes实验——全局类模块只门控在e_atomic_elements上这一点以 getting-started/experiments.md 为准而非 global-classes/overview.md。用决策表映射意图见下文。阅读匹配的子技能.cursor/skills/name/SKILL.md并照其工作流执行。实现前阅读其链接的docs/atomic-builder/...页面。第 1 步在源码中有直接证据。modules/atomic-widgets/module.php 中定义了实验常量并以此为模块激活条件const EXPERIMENT_NAME e_atomic_elements; // ... public static function is_active(): bool { return Plugin::$instance-experiments-is_feature_active( self::EXPERIMENT_NAME ); }而 modules/global-classes/module.php 直接复用了同一常量做门控const NAME Atomic_Widgets_Module::EXPERIMENT_NAME; // ... $is_atomic_widgets_active Plugin::$instance-experiments-is_feature_active( Atomic_Widgets_Module::EXPERIMENT_NAME );从源码结构看global-classes、variables、components、interactions等依赖模块都只检查e_atomic_elements这一个开关。experiments.md 补充了完整的实验矩阵e_opt_in_v4Editor V4alpha控制欢迎页与新容器默认行为e_atomic_elementsAtomic Widgetsbeta门控 atomic-widgets 及其全部下游 v4 模块新站点≥ 4.0.0上两者默认激活。opt-in 开关在 modules/atomic-widgets/opt-in/opt-in.php 中实现OPT_IN_FEATURES激活e_opt_in_v4, container, e_atomic_elements三项OPT_OUT_FEATURES只回收e_opt_in_v4, e_atomic_elementscontainer不会随 opt-out 关闭。决策表意图到子技能的完整映射意图子技能作用域主要文档新建 widget 或 container 元素create-atomic-widgetExternalatomic-widgets/authoring-widgets.md$$type、prop schema、校验、transformerextend-prop-typesExternalfundamentals/prop-types.md、transformers.mdWordPress 数据源 / 动态绑定add-dynamic-tagExternaldynamic-tags/extending.md编辑器 UI、slots、编辑器内 MCP 工具add-editor-packageExternaleditor-packages/extending-editor.md设计令牌 / kit 变量extend-variablesExternalvariables/types.md遗留 CSS → 原子化样式 propsinternal-extend-css-converterInternalcss-converter/extension.md动效 / 交互 tab全栈internal-extend-interactionsInternalinteractions/editor.md其中作用域的定义是谁能交付完整的文档化结果External 指第三方插件不改动 Core 即可交付Internal 指必须向 Core 提交 PR。部分外部 API 的存在不改变分类——这是 skills-scope.md 中明确给出的免责声明。v3 与 v4 的陷阱原文档用专门一节警告了两个常见误用市场技能elementor-widget-patterns是v3 专属Widget_Base、Controls_Manager、content_template。做 atomic/v4 工作时必须用上面的子技能而不是遗留 widget 模式。代码片段 MCP 工具中出现的extend-elementor指南同样是v3 专属——它依赖elementor/element/{name}/{section}/before_section_end之类的遗留钩子完全没有 atomic/v4 覆盖。v4 应使用elementor/atomic-widgets/*系列的钩子在子技能中有文档。对照仓库代码可以印证 v3 遗留路径仍然存在includes/widgets/ 下的传统 widget 仍基于Widget_Base见 includes/base/widget-base.php而 v4 原子化 widget 则走 modules/atomic-widgets/elements/ 下的新元素体系。两套体系并存选错基类是最典型的 v3/v4 混淆。跨技能边界三个高频歧义点样式类 prop typeStyle prop types从 extend-prop-types 起步如果遗留 CSS 导入必须映射新 key还要额外规划 internal-extend-css-converterInternal。因为 CSS 导入 UI 只运行 Core 注册的 converter/expander没有公开发现钩子。PHP MCP abilities宿主集成、REST查阅 mcp/overview.md不是add-editor-package——后者只覆盖编辑器内 JS MCP。这一点与 experiments.md 的实验与 MCP 关系表一致PHP abilitiesmodules/mcp/与 in-editor MCPeditor-mcp包都不受实验门控分别依赖McpAdapterwp_register_ability和Editor_Loader::EXTENSIONS加载。内置元素目录Built-in element catalog变更Core-only。外部插件只能注册自己的 widget/element不能改动内置目录。External 与 Internal动手前的作用域确认原文档要求实现前先确认子技能的作用域因为纯插件方案无法交付 Internal 能力External— 第三方插件在自己仓库内完成子类化 子技能中文档化的 WordPress 钩子/过滤器编辑器 JS 用自有 npm 包或手工构建的 bundle 通过elementor/editor/v2/packages过滤器注册。不修改 Elementor Core。Internal— 必须修改 Elementor Coremodules/、packages/packages/core/并通过 PR。仅涉及 Pro 门控交互字段的 Pro 配套代码位于elementor-pro兄弟仓库——不在 Core也不在第三方插件中。只走公开钩子的编辑器内部分集成在完整结果包含已发布页面行为时不满足 Internal 技能的要求。完整的七项技能分类含每项的实现位置与公开面/注意事项见 skills-scope.md。External 技能的公开钩子在源码中都有真实落点例如 modules/atomic-widgets/module.php 自身就使用了这套接口add_filter( elementor/editor/v2/packages, fn( $packages ) $this-add_packages( $packages ) ); add_filter( elementor/widgets/register, fn( $widgets_manager ) $this-register_widgets( $widgets_manager ) ); add_action( elementor/elements/elements_registered, fn( $elements_manager ) $this-register_elements( $elements_manager ) );elementor/editor/v2/packages过滤器同样被global-classes、components、agents等模块用于追加编辑器包说明它是编辑器 UI 扩展的稳定公共入口。没有匹配技能时直接读文档或停下如果意图不在决策表中原文档指出应直接查阅 docs/atomic-builder/README.md 的章节索引。以下主题目前还没有技能要么直接按文档实施要么在需要 Core PR 时停手Migration— migration/README.md → prop-type-migrations.mdComponents— components/README.md → overview.mdGlobal classes— global-classes/README.md → overview.md架构 / 调试— architecture/README.md → packages-map.md这些主题在仓库中都有对应实现可参照例如 modules/components/ 与 modules/atomic-widgets/prop-type-migrations/但缺少技能意味着没有经过验证的端到端检查清单动手前应评估风险。前置条件与参考实现所有 External 技能的可运行示例共享两个前置条件见 examples/README.md实验e_atomic_elements处于激活状态可用wp elementor experiments activate e_atomic_elements在开发/预发环境开启PropValues 使用{ $$type, value }结构见 prop-value.md。整合演示插件 examples/example-plugin/ 是一个标准第三方插件结构插件头声明Requires Plugins: elementor在plugins_loaded时加载includes/plugin.php并初始化Elementor_Example_Plugin\Plugin单例。它是理解不改 Core、仅用公开钩子交付完整结果这一 External 作用域的最佳起点。下一步按原文档的收尾指引从决策表中选定一个子技能打开其SKILL.md端到端执行该检查清单实现前核对技能的 Scope 横幅与 Implementation location 章节并交叉阅读其链接的docs/atomic-builder/...页面。路由器本身的价值在于让你在写第一行代码之前就明确知道这件事能不能做、在哪做、需要交付到什么程度。【免费下载链接】elementorThe most advanced frontend drag drop page builder. Create high-end, pixel perfect websites at record speeds. Any theme, any page, any design.项目地址: https://gitcode.com/GitHub_Trending/el/elementor创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表