> For the complete documentation index, see [llms.txt](https://docs.acpt.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.acpt.io/developers/actions/acpt-abilities-api-abilities.md).

# acpt/abilities-api/abilities

Filters the list of ability classes registered with WordPress's core Abilities API

**Type:** Filter

Filters the list of ability classes ACPT registers with WordPress's core [Abilities API](/integrations/abilities-api.md) before registration happens. Use it to add your own ability classes, or to remove/replace one of ACPT's built-in abilities.

### Parameters

| Parameter    | Type    | Description                                                   |
| ------------ | ------- | ------------------------------------------------------------- |
| `$abilities` | `array` | Fully-qualified class names, each extending `AbstractAbility` |

**Return:** `array` — the (optionally modified) list of ability classes.

### Usage

```php
add_filter("acpt/abilities-api/abilities", function(array $abilities){
    // remove an ability
    $abilities = array_diff($abilities, [\ACPT\Core\Ability\PostType\DeletePostTypeAbility::class]);

    // or register your own
    $abilities[] = \My\Plugin\Ability\MyCustomAbility::class;

    return $abilities;
});
```

{% hint style="info" %}
This runs earlier in the boot sequence than the [Agent Connector for WP](/integrations/abilities-api/agent-connector-for-wp.md) integration's own registration — on a site with both active, an ability registered here may be unregistered and re-registered later in the same request by ACFW (its audit-log/MCP-exposure decoration needs to win). That's expected.
{% endhint %}
