geodirectory/delete-listing-tab permanently removes a tab from a listing type’s single-page layout. It requires confirm_name matching the tab’s current name.
No listing data is affected — this is layout.
Before you run it
Deleting a parent tab deletes its child tabs with it. That cascade is why include_children is required in that case — without it the call is refused rather than quietly removing more than was named. No listing data is affected; this is layout only, and the tabs can be recreated.
At a glance
| Ability | geodirectory/delete-listing-tab |
| Toolset | GeoDirectory — toolset/geodirectory |
| Group | GeoDirectory › Tabs, Sorting & Blocks |
| Requires | AcrossAI Pro, plus GeoDirectory active on the site |
| Capability | manage_options |
| Safety | Destructive — requires confirm_name, and include_children when the tab has children. |
| Repeatable | Not idempotent — each call changes the row set, so re-running is not a no-op |
| Ships in | AcrossAI Pro 0.9.16 and later |
How it works
Removing a tab removes a way of displaying data, not the data. The custom field a meta tab rendered still exists and still holds its values; it simply has no tab any more.
That makes this one of the less consequential destructive operations here, and it is still guarded — because a tab layout is work somebody did, and recreating one with several children is tedious.
The cascade is the part worth the extra flag. A parent tab with three children is four deletions from one call, and the caller asked for one.
Recreating is straightforward with geodirectory/manage-listing-tab, provided you know what was there — which is why reading the layout first is worth the call.
Not idempotent.
Input
| Name | Type | Required | What it is |
|---|---|---|---|
id | integer | Yes | Tab ID, from geodirectory/list-listing-tabs. |
confirm_name | string | Yes | Must match the tab’s current name exactly as it is on this site. The guardrail against deleting by ID alone. |
post_type | string | No | Listing type, for example gd_place. Defaults to the site default. See geodirectory/get-directory-overview for the valid values. |
include_children | boolean | When the tab has children | Required to delete a tab whose deletion cascades to child tabs. |
confirm | boolean | Yes — must be true | The irreversibility gate. Without it the call is refused before anything is touched. |
What comes back
| Name | Type | What it is |
|---|---|---|
id | integer | The tab removed. |
deleted_children | integer | How many child tabs went with it. |
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:
Remove the map tab from listings.
It resolves to one call:
{
"ability": "geodirectory/delete-listing-tab",
"parameters": {
"id": 18,
"confirm_name": "Map"
}
}Worth knowing
- Layout only — no listing data is touched.
- Deleting a parent cascades to its children, and needs the extra flag.
- Read the layout first so you can recreate it.
- Not idempotent.
Related abilities
- GeoDirectory List Listing Tabs — read before deleting
- GeoDirectory Manage Listing Tab — recreate it
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category