Token导航 LogoToken导航

Agent Skill · 研究检索

elementor-hooks(元素钩子)

elementor-hooks 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

elementor-hooks 是研究检索类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为只读;许可证信息还不明确,第三方扫描已通过,按安装量在研究检索类的 73,675 个 Skill 里排第 49,774。

总安装 636周安装 26GitHub Stars 3下载 204核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:elementor-hooks(元素钩子)
来源仓库:https://github.com/peixotorms/odinlayer-skills
仓库路径:skills/elementor-hooks
安装命令:
npx skills add https://github.com/peixotorms/odinlayer-skills --skill elementor-hooks
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/peixotorms/odinlayer-skills --skill elementor-hooks

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

elementor-hooks 列出 Elementor 生命周期内可用的 PHP 钩子与事件点。适用于注册自定义功能、监听特定动作或调试插件交互流程。通过 npx skills add 命令从 GitHub 安装,需确认仓库权限与网络访问能力。使用前应核实维护状态及是否涉及文件读写、命令执行等敏感操作。

适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

来源仓库内路径:skills/elementor-hooks

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/peixotorms/odinlayer-skills --skill elementor-…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它标注为只读,先用只读任务试一次,确认行为符合预期再扩大使用范围。

常见问题

6 条

elementor-hooks 怎么安装?

在终端执行 npx skills add https://github.com/peixotorms/odinlayer-skills --skill elementor-hooks。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

elementor-hooks 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

elementor-hooks 需要什么权限?

权限级别是只读。该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

elementor-hooks 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

elementor-hooks 用的人多吗?

公开数据是累计安装 636 次,近一周安装 26 次,下载 204 次,GitHub 3 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

elementor-hooks 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 第三方扫描已通过,常见的高风险行为没有命中。
  • 标注为只读权限,试用阶段不容易误改本地文件。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。
  • 只想先试试效果、不希望它改动本地文件的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
elementor-hooks

元素钩子 · 本页

6363只读未明确通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Elementor Hooks Reference

1. PHP Action Hooks

Lifecycle

Hook NameParametersDescription
elementor/loadednoneFires when Elementor plugin is loaded, before components initialize. Use for checking Elementor availability.
elementor/initnoneFires when Elementor is fully loaded. Use for registering custom functionality.

Registration

Hook NameParametersDescription
elementor/widgets/registerWidgets_Manager $widgets_managerRegister custom widgets
elementor/controls/registerControls_Manager $controls_managerRegister custom controls
elementor/dynamic_tags/registerDynamic_Tags_Manager $dynamic_tags_managerRegister dynamic tags
elementor/finder/registerCategories_Manager $categories_managerRegister Finder categories
elementor/elements/categories_registeredElements_Manager $elements_managerRegister widget categories
elementor/documents/registerDocuments_Manager $documents_managerRegister document types

Frontend Scripts and Styles

Hook NameParametersDescription
elementor/frontend/after_register_scriptsnoneAfter frontend scripts registered
elementor/frontend/before_register_scriptsnoneBefore frontend scripts registered
elementor/frontend/after_register_stylesnoneAfter frontend styles registered
elementor/frontend/before_register_stylesnoneBefore frontend styles registered
elementor/frontend/after_enqueue_scriptsnoneAfter frontend scripts enqueued
elementor/frontend/before_enqueue_scriptsnoneBefore frontend scripts enqueued
elementor/frontend/after_enqueue_stylesnoneAfter frontend styles enqueued
elementor/frontend/before_enqueue_stylesnoneBefore frontend styles enqueued

Editor Scripts and Styles

Hook NameParametersDescription
elementor/editor/before_enqueue_scriptsnoneBefore editor scripts enqueued
elementor/editor/after_enqueue_scriptsnoneAfter editor scripts enqueued
elementor/editor/after_enqueue_stylesnoneAfter editor styles enqueued
elementor/editor/before_enqueue_stylesnoneBefore editor styles enqueued

Preview Scripts and Styles

Hook NameParametersDescription
elementor/preview/enqueue_scriptsnoneEnqueue scripts in the preview iframe
elementor/preview/enqueue_stylesnoneEnqueue styles in the preview iframe

Widget Rendering

Hook NameParametersDescription
elementor/widget/{$widget_name}/skins_initWidget_Base $widgetRegister custom skins for a widget
elementor/widget/before_render_contentWidget_Base $widgetBefore widget content renders
elementor/frontend/before_renderElement_Base $elementBefore any element renders (all types)
elementor/frontend/after_renderElement_Base $elementAfter any element renders (all types)
elementor/frontend/{$element_type}/before_renderElement_Base $elementBefore specific element type renders
elementor/frontend/{$element_type}/after_renderElement_Base $elementAfter specific element type renders

Element types for {$element_type}: section, column, container, widget

Document and Editor Save

Hook NameParametersDescription
elementor/documents/register_controlsDocument $documentRegister controls for documents/page settings
elementor/editor/after_saveint $post_id, array $editor_dataAfter user saves editor data
elementor/document/before_saveDocument $document, array $dataBefore document saves
elementor/document/after_saveDocument $document, array $dataAfter document saves

CSS File Hooks

Hook NameParametersDescription
elementor/element/parse_cssPost $post_css, Element_Base $elementAdd custom CSS rules to element CSS
elementor/element/before_parse_cssPost $post_css, Element_Base $elementBefore CSS is parsed
elementor/css-file/{$name}/enqueueCSS_File $css_fileWhen a CSS file is enqueued
elementor/core/files/clear_cachenoneWhen CSS cache is cleared

Forms (Pro)

Hook NameParametersDescription
elementor_pro/forms/validationForm_Record $record, Ajax_Handler $ajax_handlerValidate all form fields
elementor_pro/forms/validation/{$field_type}array $field, Form_Record $record, Ajax_Handler $ajax_handlerValidate specific field type
elementor_pro/forms/processForm_Record $record, Ajax_Handler $ajax_handlerAfter fields validated, process form
elementor_pro/forms/process/{$field_type}array $field, Form_Record $record, Ajax_Handler $ajax_handlerProcess specific field type
elementor_pro/forms/new_recordForm_Record $record, Ajax_Handler $ajax_handlerAfter form actions run
elementor_pro/forms/form_submittedForms\Module $moduleWhen form POST received
elementor_pro/forms/mail_sentarray $settings, Form_Record $recordAfter form email sent
elementor_pro/forms/webhooks/response`array\WP_Error $response, Form_Record $record`Handle webhook response

Query (Pro)

Hook NameParametersDescription
elementor/query/{$query_id}WP_Query $query, Widget_Base $widgetFilter Posts/Portfolio widget query. Set Query ID in widget settings.

Other Important Actions

Hook NameParametersDescription
elementor/ajax/register_actionsAjax_Manager $ajax_managerRegister AJAX handlers
elementor/editor/initnoneEditor initialization
elementor/editor/footernoneEditor footer output
elementor/preview/initnonePreview initialization
elementor/kit/register_tabsKit $kitRegister kit (site settings) tabs
elementor/page_templates/canvas/before_contentnoneBefore canvas template content
elementor/page_templates/canvas/after_contentnoneAfter canvas template content
elementor/template-library/after_save_templateint $template_id, array $dataAfter template saved
elementor/element/after_add_attributesElement_Base $elementAfter render attributes added
elementor/experiments/default-features-registeredExperiments_Manager $managerRegister experiments

2. PHP Filter Hooks

Widget Output Filters

Filter NameParametersDescription
elementor/widget/render_contentstring $content, Widget_Base $widgetFilter widget HTML on frontend
elementor/{$element_type}/print_templatestring $template, Widget_Base $widgetFilter widget JS template in preview
elementor/frontend/the_contentstring $contentFilter entire Elementor page output
elementor/frontend/{$element_type}/should_renderbool $should_render, Element_Base $elementControl whether element renders

Document and Config Filters

Filter NameParametersDescription
elementor/document/configarray $config, Document $documentFilter document config
elementor/document/save/dataarray $data, Document $documentFilter data before save
elementor/document/urls/editstring $url, Document $documentFilter edit URL
elementor/document/urls/previewstring $url, Document $documentFilter preview URL
elementor/editor/localize_settingsarray $settingsFilter editor localized settings

Visual Element Filters

Filter NameParametersDescription
elementor/frontend/print_google_fontsbool $printReturn false to disable Google Fonts loading
elementor/shapes/additional_shapesarray $shapesAdd custom shape dividers
elementor/mask_shapes/additional_shapesarray $shapesAdd custom mask shapes
elementor/utils/get_placeholder_image_srcstring $srcChange default placeholder image
elementor/icons_manager/additional_tabsarray $tabsAdd custom icon libraries
elementor/fonts/additional_fontsarray $fontsAdd custom fonts
elementor/controls/animations/additional_animationsarray $animationsAdd custom animations
elementor/divider/styles/additional_stylesarray $stylesAdd custom divider styles

Finder and Template Filters

Filter NameParametersDescription
elementor/finder/categoriesarray $categoriesAdd/modify Finder categories
elementor/template-library/get_templatearray $template_dataFilter template data
elementor/template_library/is_template_supports_exportbool $supports, array $templateControl template export
elementor/files/allow_unfiltered_uploadbool $allowAllow unfiltered file uploads
elementor/files/svg/enabledbool $enabledEnable/disable SVG support

Forms Filters (Pro)

Filter NameParametersDescription
elementor_pro/forms/wp_mail_headersstring $headersFilter form email headers
elementor_pro/forms/wp_mail_messagestring $messageFilter form email body HTML
elementor_pro/custom_fonts/font_displaystring $displayOverride custom fonts font-display value

Other Important Filters

Filter NameParametersDescription
elementor/frontend/builder_content_dataarray $data, int $post_idFilter builder content data
elementor/frontend/assets_urlstring $urlFilter frontend assets URL
elementor/widgets/black_listarray $black_listWidget class blacklist
elementor/element/get_child_typestring $child_type, array $dataFilter allowed child types
elementor/utils/is_post_type_supportbool $support, int $post_id, string $post_typeFilter post type support

3. Injecting Controls

Targeting All Elements

Inject controls into every element using these hooks:

Hook NameParamsUse
elementor/element/before_section_start$element, $section_id, $argsAdd new section before an existing section
elementor/element/after_section_start$element, $section_id, $argsAdd control inside start of existing section
elementor/element/before_section_end$element, $section_id, $argsAdd control inside end of existing section
elementor/element/after_section_end$element, $section_id, $argsAdd new section after an existing section

Targeting Specific Elements

Use {$stack_name} and {$section_id} to target a specific widget and section:

Hook PatternParamsUse
elementor/element/{$stack_name}/{$section_id}/before_section_start$element, $argsAdd section before
elementor/element/{$stack_name}/{$section_id}/after_section_start$element, $argsAdd control at section start
elementor/element/{$stack_name}/{$section_id}/before_section_end$element, $argsAdd control at section end
elementor/element/{$stack_name}/{$section_id}/after_section_end$element, $argsAdd section after

See resources/injecting-controls-examples.md for code examples.


4. JS Frontend Hooks

Frontend hooks use elementorFrontend.hooks (available on the frontend page).

Actions

Hook NameParametersDescription
elementor/frontend/initnoneFrontend initialized
frontend/element_ready/global$scope (jQuery), $ (jQuery)Any element is ready (sections, columns, widgets)
frontend/element_ready/widget$scope (jQuery), $ (jQuery)Any widget is ready
frontend/element_ready/{widgetType.skinName}$scope (jQuery), $ (jQuery)Specific widget+skin is ready (e.g. image.default)

Filters

Hook NameParametersDescription
frontend/handlers/menu_anchor/scroll_top_distanceint scrollTopAdjust scroll distance for menu anchors

See resources/js-hooks-commands.md for code examples.


5. JS Editor Hooks

Editor hooks use elementor.hooks (available inside the Elementor editor).

Actions

Hook NameParametersDescription
panel/open_editor/{elementType}panel, model, viewSettings panel opened for element type (widget, section, column)
panel/open_editor/{elementType}/{elementName}panel, model, viewSettings panel opened for a specific widget name

Filters

Hook NameParametersDescription
elements/context-menu/groupsarray groupsModify right-click context menu groups

See resources/js-hooks-commands.md for code examples.


6. JS Commands API ($e.commands)

The Commands API (since 2.7.0) manages all editor commands. Run commands with $e.run().

Key Methods

MethodParametersReturnsDescription
$e.commands.register()component, command, callbackCommandsRegister a new command
$e.run()string command, object args*Execute a command
$e.commands.getAll()noneObjectGet all registered commands
$e.commands.getCurrent()noneObjectGet currently running commands
$e.commands.is()string commandBooleanCheck if command is currently running
$e.commands.getCurrentArgs()noneObjectGet args of currently running command
$e.commands.getCurrentFirst()noneStringGet first currently running command

Command Types

Base ClassTypePurpose
$e.modules.CommandBaseUser commandsRepresent user actions
$e.modules.CommandInternalBaseInternal commandsFor internal editor use
$e.modules.CommandDataData commandsCommunicate with data/cache/backend

See resources/js-hooks-commands.md for full code examples.


7. JS Components API ($e.components)

MethodParametersReturnsDescription
$e.components.register()ComponentBase componentComponentBaseRegister a component
$e.components.get()string idComponentBaseGet component by namespace
$e.components.getAll()nonearrayGet all components
$e.components.activate()string namespaceActivate a component
$e.components.inactivate()string namespaceDeactivate a component
$e.components.isActive()string namespaceBooleanCheck if component is active
$e.components.getActive()noneObjectGet all active components

A component serves as a namespace that holds commands, hooks, routes, tabs, shortcuts, and utils. Component class files should be named component.js.

See resources/js-hooks-commands.md for code examples.


8. JS Hooks API ($e.hooks)

The $e.hooks API manages hooks that fire before/after commands run via $e.run().

UI Hooks

MethodParameterDescription
$e.hooks.registerUIBefore()HookBase instanceBefore command runs (UI)
$e.hooks.registerUIAfter()HookBase instanceAfter command runs (UI)
$e.hooks.registerUICatch()HookBase instanceWhen command fails (UI)

Data Hooks

MethodParameterDescription
$e.hooks.registerDataDependency()HookBase instanceBefore command (dependency check)
$e.hooks.registerDataAfter()HookBase instanceAfter command runs (data)
$e.hooks.registerDataCatch()HookBase instanceWhen command fails (data)

See resources/js-hooks-commands.md for hook convention code examples and import patterns.


9. Common Patterns

I want to...Use this hook
Register a custom widgetelementor/widgets/register (action)
Register a custom controlelementor/controls/register (action)
Add a widget categoryelementor/elements/categories_registered (action)
Register a dynamic tagelementor/dynamic_tags/register (action)
Enqueue frontend scriptelementor/frontend/after_register_scripts (action)
Enqueue editor scriptelementor/editor/after_enqueue_scripts (action)
Enqueue preview scriptelementor/preview/enqueue_scripts (action)
Add control to existing widgetelementor/element/{widget}/{section}/before_section_end (action)
Add control to page settingselementor/documents/register_controls (action)
Add control to user preferenceselementor/element/editor-preferences/preferences/before_section_end (action)
Modify widget HTML outputelementor/widget/render_content (filter)
Modify widget JS templateelementor/widget/print_template (filter)
Filter entire page outputelementor/frontend/the_content (filter)
Disable Google Fontselementor/frontend/print_google_fonts return false (filter)
Change placeholder imageelementor/utils/get_placeholder_image_src (filter)
Add custom shape dividerselementor/shapes/additional_shapes (filter)
Add custom mask shapeselementor/mask_shapes/additional_shapes (filter)
Validate form data (Pro)elementor_pro/forms/validation (action)
Process form after submit (Pro)elementor_pro/forms/new_record (action)
Filter posts widget query (Pro)elementor/query/{$query_id} (action)
Add CSS rules to elementselementor/element/parse_css (action)
Run code when widget ready (JS)frontend/element_ready/{widget.skin} via elementorFrontend.hooks
Hook into editor panel open (JS)panel/open_editor/{type}/{name} via elementor.hooks
Register editor command (JS)$e.commands.register() or component defaultCommands()
Hook before/after command (JS)$e.hooks.registerUIBefore() / $e.hooks.registerUIAfter()

平台分布

Codex

33.58%
按下载量换算69

Claude

30.09%
按下载量换算61

Cursor

20.2%
按下载量换算41

Gemini CLI

8.94%
按下载量换算18

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

只读

该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills