elementor/add-post-tabs inserts a Nested Tabs widget where each tab contains a native Posts widget, filtered by a taxonomy term or a custom query.
It builds a composite that is tedious to assemble by hand.
At a glance
| Ability | elementor/add-post-tabs |
| 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 |
Why this is one ability rather than several
Assembling this manually means creating a Nested Tabs widget, then a container per tab, then a Posts widget inside each, then configuring each widget’s query. For four tabs that is thirteen elements and four query configurations, each with its own control keys.
The structure is also particular: Nested Tabs expects its children in a specific shape, and getting that wrong produces tabs that render empty.
So the composite is built as one operation, correctly, from a list of tabs.
Everything it produces is native Elementor — Nested Tabs and Posts are both standard widgets, and the result is fully editable in the editor afterwards. Nothing here is a custom element that only this ability understands.
Nested Tabs requires the corresponding Elementor experiment to be active on sites where it is still gated. elementor/list-experiments reports that.
Not idempotent.
Input
| Name | Type | Required | What it is |
|---|---|---|---|
post_id | integer | Yes | The post holding the Elementor document. |
tabs | array | Yes | One entry per tab: its label, and either a taxonomy term or a custom query. |
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 tabs for our three post categories, each showing its latest posts.
It resolves to one call:
{
"ability": "elementor/add-post-tabs",
"parameters": {
"post_id": 412,
"tabs": [
{ "label": "Guides", "term_id": 87 },
{ "label": "News", "term_id": 88 }
]
}
}Worth knowing
- Produces native widgets, fully editable in the editor afterwards.
- Nested Tabs may be gated behind an experiment on some installs.
- Four tabs is thirteen elements to build by hand.
- Not idempotent.
Related abilities
- List Elementor Experiments — check Nested Tabs is available
- Add Elementor Widget — build it piece by piece instead
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category