elementor/add-text-editor inserts an Elementor text-editor widget with HTML content and alignment.
It is the widget that holds body copy, and the one that accepts markup.
At a glance
| Ability | elementor/add-text-editor |
| Toolset | Elementor — toolset/elementor |
| Group | Elementor › Elements & Widgets |
| 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 |
How it works
The content is HTML, which makes this the most flexible of the convenience wrappers and the one with the sharpest edge: whatever markup goes in is what renders.
That is useful — a list, a couple of paragraphs, an inline link — and it is also how malformed markup gets into a document. An unclosed tag in a text editor widget can break the layout of everything after it on the page.
The widget applies the kit’s body typography by default, so plain paragraphs come out consistent with the rest of the site without any styling at all. Inline styles in the markup override that and are the usual reason one block of copy looks different from the rest.
For a heading, use the heading widget rather than an h2 inside a text editor. Both render, and only one of them is editable as a heading in the editor.
Not idempotent.
Input
| Name | Type | Required | What it is |
|---|---|---|---|
post_id | integer | Yes | The post holding the Elementor document. |
content | string | Yes | HTML content. |
align | string | No | Text alignment. |
parent_id | string | null | No | The element to insert into. Null or omitted inserts at the document root. |
position | integer | No | Index among the parent’s children. Omitted appends at the end. |
What comes back
| Name | Type | What it is |
|---|---|---|
post_id | integer | The post written. |
element_id | string | The ID of the element created or affected. |
element | object | The element as stored. |
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:
Add a paragraph of intro copy under the heading.
It resolves to one call:
{
"ability": "elementor/add-text-editor",
"parameters": {
"post_id": 412,
"content": "<p>We help teams ship faster, with less ceremony.</p>",
"parent_id": "a1b2c3d"
}
}Worth knowing
- The content is HTML. Malformed markup breaks the layout after it.
- Kit typography applies by default; inline styles override it.
- Use the heading widget for headings, not markup inside this one.
- Not idempotent.
Related abilities
- Add Elementor Heading — the heading above it
- Patch Elementor Document Data — change the text later
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category