elementor/create-template creates a new Elementor template of any supported type: page, section, popup, header, footer, single or archive.
The type is not cosmetic — it decides what the template can do.
At a glance
| Ability | elementor/create-template |
| Toolset | Elementor — toolset/elementor |
| Group | Elementor › Templates & Theme Builder |
| Requires | Elementor, active on the site |
| Capability | manage_options |
| Safety | Writes data |
| Repeatable | Not idempotent — each call changes the row set, so re-running is not a no-op |
| Ships in | AcrossAI Abilities Manager 0.0.34 and later |
The type decides everything downstream
Elementor templates are posts of the elementor_library post type, distinguished by a template_type meta value. Kits and global widgets are the same post type with different types — which is why they appear in the same place and behave differently.
A section template can be inserted into a page. A header template replaces the theme’s header where its conditions match. A popup appears on triggers. A single template renders individual posts. These are different mechanisms, and the type is how Elementor knows which one applies.
Changing the type afterwards is not a supported operation, so getting it right at creation matters more than most create-time choices.
A new Theme Builder template — header, footer, single, archive — has no display conditions and therefore renders nowhere until elementor/update-theme-builder-conditions gives it some. That is a correct intermediate state and a confusing one if you expect a newly created header to appear.
The template is created empty. Content comes from the element abilities, from an import, or from duplicating something existing.
Not idempotent.
Input
| Name | Type | Required | What it is |
|---|---|---|---|
title | string | Yes | The template title. |
template_type | string | Yes | page, section, popup, header, footer, single or archive. |
status | string | No | Publication status. |
What comes back
| Name | Type | What it is |
|---|---|---|
template_id | integer | The new template. |
template_type | string | Its type. |
success | boolean | Whether the call completed. |
message | string | A one-line summary of what happened, suitable for showing a human. |
error_code | string | Present only on failure — a stable machine-readable reason, such as a missing field, a wrong field type or an unmet confirmation. |
Example
Ask your assistant:
Create a new header template.
It resolves to one call:
{
"ability": "elementor/create-template",
"parameters": {
"title": "Main header",
"template_type": "header"
}
}Worth knowing
- The type is fixed at creation and decides the mechanism.
- Theme Builder templates render nowhere until they have conditions.
- Created empty.
- Not idempotent.
Related abilities
- Update Theme Builder Conditions — make it apply somewhere
- Import Elementor Template — create one from an export instead
- Duplicate Elementor Template — start from an existing one
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category