30 days free. No credit card. Full access from the moment you connect your site.

Start free trial

Delete ACF Field Value

Deleting an ACF value is not one row. The value row goes, the field-key reference row goes with it, and for a repeater every sub-field row underneath goes too. Miss any of them and you leave orphaned meta that ACF will trip over later.

custom-fields/delete-acf-field goes through ACF’s delete_field(), which clears the whole set. The field definition is untouched — the field still appears on the edit screen, it is simply empty.

Before you run it

This clears a stored value and cannot be undone. The call refuses to run unless you pass confirm: true, and there is no revision history behind ACF meta to restore from. Read the current value with custom-fields/get-acf-field first if there is any chance you will want it back.

At a glance

Abilitycustom-fields/delete-acf-field
ToolsetAdvanced Custom Fields — toolset/acf
GroupField Values
RequiresAdvanced Custom Fields (free edition is enough)
Capabilitymanage_options
SafetyDestructive — deletes stored values, and refuses to run without confirm: true
RepeatableIdempotent — running it twice leaves the same result
Ships inAcrossAI Abilities Manager 0.0.34 and later

How it works

Target and selector work as they do everywhere in this suite: a field name or key, against a post, user, term, comment or the options store.

The confirmation gate runs before anything is read or written. A call without confirm: true comes back with a typed error and an untouched site, which is what makes it safe to let an assistant propose the delete and a human approve it.

The operation is idempotent: deleting an already-empty field succeeds and reports the same result, so a retry cannot do extra damage.

Input

NameTypeRequiredWhat it is
target_typestringNo — defaults to postWhat the value is attached to: post, user, term, comment or option. post covers pages and any custom post type.
target_idinteger | stringYes, for post, user, term and commentThe ID of the target. Optional for option, where it names a specific options page; omit it for the default options store.
selectorstringYesField name or field key of the value to clear.
confirmbooleanYes — must be trueThe irreversibility gate. Without it the call is refused before anything is touched.

What comes back

NameTypeWhat it is
deletedbooleanTrue once the value and its reference rows are gone.
successbooleanWhether the call completed.
messagestringA one-line summary of what happened, suitable for showing a human.
error_codestringPresent 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:

Clear the legacy_banner field on post 412 — I’ve checked, we no longer use it.

It resolves to one call:

{
  "ability": "custom-fields/delete-acf-field",
  "parameters": {
    "target_type": "post",
    "target_id": 412,
    "selector": "legacy_banner",
    "confirm": true
  }
}

Worth knowing

  • Read the value first. Once it is gone there is no copy anywhere.
  • Removing a single repeater row is a different job — custom-fields/remove-acf-repeater-row takes an index and leaves the rest of the field alone.
  • This does not delete the field definition. To stop the field appearing at all, edit the field group in the ACF admin.

Related abilities


Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager

Browse the rest: Every ability, by category


Keep reading