WordPress-native extensibility
LemonX exposes extension points through standard WordPress actions and filters so developers can customize behavior without editing core plugin files.
LemonX is designed to be extended through WordPress-native developer patterns. Hooks and filters let you adjust workflows, modify output, connect custom logic and integrate site-specific behavior without hacking core product files.
Use extension points to modify generated content, customize Schema, control translation behavior, extend MCP tools, adapt Pro licensing logic and build agency-specific workflows that fit your WordPress environment.
WordPress-native · add_filter & add_action · Product-aware · Safe extension patterns
Hooks and filters are WordPress extension points that LemonX modules use throughout AEO, Code, Verto, MCP, Pro and shared services. They let developers change values, register custom behavior and respond to lifecycle events while keeping LemonX updatable.
If you are building client-specific logic, plugin compatibility layers or agency standards across many sites, hooks are usually the most natural place to start — especially when the customization should run inside WordPress rather than through an external app.
LemonX exposes extension points through standard WordPress actions and filters so developers can customize behavior without editing core plugin files.
Hooks are organized around LemonX modules — AEO, Code, Verto, MCP, Pro and shared utilities — so you can extend only the workflows you need.
Use filters to modify values, use actions to respond to lifecycle events, validate permissions in callbacks and keep custom logic isolated in your own plugin or mu-plugin.
Hooks complement REST API integrations and MCP tool workflows. Use hooks for in-process WordPress customization; use REST and MCP for external systems and AI agents.
Filters receive a value, let you modify it and must return the updated value. Use filters when LemonX produces output, configuration, lists or decisions that you want to customize.
Actions run at a specific point in a LemonX workflow. They do not return a modified value. Use actions when you want to trigger logging, sync external systems or run follow-up logic.
Use hooks when customization should live inside WordPress. Use REST when external systems need programmatic access. Use MCP when AI agents need tool-driven WordPress operations.
The hooks below are drawn from active LemonX plugin source and represent common developer extension points. Always confirm availability against your installed LemonX version and product entitlements.
Extend the LemonX MCP registry, resources, permissions and write policies. These hooks are central for agencies that want custom AI tools or stricter agent boundaries.
lemonx_mcp_toolsRegister or modify MCP tools available to connected AI clients.
$tools → arraylemonx_mcp_resourcesAdd MCP resources readable by compatible clients.
$resources → arraylemonx_mcp_resource_readCustomize resource payload when a URI is read.
$contents, $urilemonx_mcp_allow_writes_without_proControl whether write tools can run without Pro entitlement.
bool → boolCustomize AI generation, frontend rendering, schema output, templates, fonts, Tailwind configuration and editor behavior for LemonX Code pages.
lemonx_editor_output_jsonldEnable or customize JSON-LD output for a page.
bool, $post_id → boollemonx_editor_frontend_sourceModify rendered frontend HTML source for a page.
$source, $post_id → stringlemonx_ai_prompt_templatesAdd or override AI prompt templates used by LemonX Code.
$templates → arraylemonx_tailwind_configCustomize Tailwind configuration for generated pages.
$config → arraylemonx_code_require_proControl whether LemonX Code features require Pro.
bool → boollemonx_ai_chat_streamObserve AI chat stream events for logging or analytics.
$scope, $image_count, $history_countlemonx_form_submittedRespond when a LemonX form receives a submission.
$form_id, $data, $entry_idModify SEO metadata, schema graphs, analyzable content, social meta, indexing support and content used by AEO analysis workflows.
lemonx_aeo_jsonld_graphsModify Schema.org graph output before it is rendered.
$graphs → arraylemonx_aeo_analyzable_post_typesControl which post types AEO modules analyze.
$types → arraylemonx_aeo_post_contentModify post content before AEO analysis runs.
$content, $post → stringlemonx_aeo_title_varsAdd variables available in SEO title templates.
$vars, $post → arraylemonx_aeo_og_typeCustomize Open Graph type for a post.
$type, $post → stringlemonx_aeo_google_indexing_supportedControl whether Google indexing is offered for a post.
bool, $post → boolVerto uses both lemonx_* integration hooks and lxt_* translation hooks. Use them to control translatable types, translation decisions, language switchers and provider behavior.
lxt_translatable_post_typesDefine which post types participate in translation workflows.
$types → arraylxt_should_translate_objectDecide whether a specific field should be translated.
bool, $object_type, $object_id, … → boollxt_switcher_languagesModify languages shown in the frontend language switcher.
$langs, $current → arraylxt_require_proControl whether Verto features require Pro entitlement.
bool → boollemonx_aeo_translated_stored_schemaControl stored schema behavior for translated content.
bool, $post, $locale → boolCustomize entitlement checks, product lists, update channels, license lifecycle events and portal URLs for LemonX Pro deployments.
lemonx_pro_feature_allowedAllow or deny access to a Pro-gated feature.
bool, $feature, $entitlement → boollemonx_pro_productsModify the list of LemonX products exposed by Pro.
$products → arraylemonx_pro_featuresModify feature flags available through Pro.
$features → arraylemonx_pro_update_channelSwitch update channel between stable, beta or custom feeds.
$channel → stringlemonx_pro_license_changedRun logic when license state changes.
$status, $entitlementCross-cutting hooks for AI circuit breakers, HTTP safety, Shield integration, fonts, CDN behavior and other shared LemonX infrastructure.
lemonx_ai_circuit_failure_thresholdTune AI circuit breaker failure threshold.
int → intlemonx_allow_internal_httpAllow controlled internal HTTP requests when needed.
bool, $url → boollemonx_self_host_fontsControl self-hosted font behavior in LemonX Code.
bool → boollemonx_shield_extra_header_hooksRegister extra Shield header injection points.
$hooks → arraylemonx_editor_register_elementor_locationsControl Elementor location registration compatibility.
bool → boolUse lemonx_mcp_tools to append tools to the MCP registry. Keep tool definitions structured and permission-aware.
Modify schema graphs before LemonX outputs JSON-LD. Useful for ecommerce, local business or custom post type rules.
Use Verto translation filters to skip fields or objects that should remain untranslated.
Actions are ideal for side effects such as syncing license state to external systems.
Put customizations in a site-specific plugin, mu-plugin or child theme so updates do not overwrite your changes.
Prefer hooks referenced in LemonX developer docs and source. Undocumented internals may change between releases.
Every filter callback must return the modified value. Forgetting the return value is one of the most common extension bugs.
Check current_user_can() or equivalent capability rules before changing write behavior, tools or publishing logic.
Heavy work belongs in queued jobs, REST endpoints or async tasks — not in filters that run on every page render.
Hook changes can affect SEO output, AI tools, translation and licensing. Always validate on staging before production.
Agencies should maintain an internal list of custom LemonX hooks, owners and affected client sites.
Track which LemonX release your customizations were tested against and re-test after major upgrades.
Goal: Give each client site custom AI tools without forking LemonX MCP.
Result: Client sites keep standard LemonX MCP while your agency adds safe, scoped custom tools.
Goal: Output specialized Schema.org data for a custom post type used in AI search pages.
Result: AEO and search systems receive structured data aligned with your content model.
Goal: Translate marketing pages but keep legal and pricing footers unchanged.
Result: Multilingual workflows stay fast while sensitive content remains consistent across locales.
Goal: Enable beta features only for agency-managed client sites with active Pro licenses.
Result: Feature access stays aligned with billing and deployment policies across many sites.
Use documented hooks and filters to customize AI workflows, SEO output, translation behavior, MCP tools and Pro licensing — while keeping LemonX core maintainable.
Combine hooks and filters with REST API, MCP tools, authentication and webhooks to create a developer platform that fits your agency, product team or enterprise WordPress stack.