Abilities API Hooks

Actions and filters for the Abilities API.


Actions

wp_abilities_api_categories_init

Fires when the category registry initializes. Register categories here.

do_action( 'wp_abilities_api_categories_init', WP_Ability_Categories_Registry $registry )
Parameter Type Description
$registry WP_Ability_Categories_Registry Registry instance

Example:

add_action( 'wp_abilities_api_categories_init', function( $registry ) {
    wp_register_ability_category( 'my-category', array(
        'label'       => 'My Category',
        'description' => 'Custom abilities.',
    ) );
} );

wp_abilities_api_init

Fires when the ability registry initializes. Register abilities here.

do_action( 'wp_abilities_api_init', WP_Abilities_Registry $registry )
Parameter Type Description
$registry WP_Abilities_Registry Registry instance

Example:

add_action( 'wp_abilities_api_init', function( $registry ) {
    wp_register_ability( 'my-plugin/my-ability', array( ... ) );
} );

wp_before_execute_ability

Fires before ability execution, after validation and permission check.

do_action( 'wp_before_execute_ability', string $ability_name, mixed $input )
Parameter Type Description
$ability_name string Ability being executed
$input mixed Input data

Example:

add_action( 'wp_before_execute_ability', function( $name, $input ) {
    error_log( "Executing ability: {$name}" );
}, 10, 2 );

wp_after_execute_ability

Fires after successful ability execution.

do_action( 'wp_after_execute_ability', string $ability_name, mixed $input, mixed $result )
Parameter Type Description
$ability_name string Ability that was executed
$input mixed Input data
$result mixed Execution result

Example:

add_action( 'wp_after_execute_ability', function( $name, $input, $result ) {
    // Log successful executions
    do_action( 'my_plugin_ability_log', $name, $result );
}, 10, 3 );

Filters

wp_register_ability_args

Filters ability configuration before registration.

apply_filters( 'wp_register_ability_args', array $args, string $name )
Parameter Type Description
$args array Configuration array
$name string Ability name

Returns: Modified configuration array.

Example:

add_filter( 'wp_register_ability_args', function( $args, $name ) {
    // Force all abilities to require authentication
    if ( ! isset( $args['meta']['show_in_rest'] ) ) {
        $args['meta']['show_in_rest'] = false;
    }
    return $args;
}, 10, 2 );

wp_register_ability_category_args

Filters category configuration before registration.

apply_filters( 'wp_register_ability_category_args', array $args, string $slug )
Parameter Type Description
$args array Configuration array
$slug string Category slug

Returns: Modified configuration array.

Example:

add_filter( 'wp_register_ability_category_args', function( $args, $slug ) {
    // Add default meta to all categories
    $args['meta']['registered_by'] = 'my-plugin';
    return $args;
}, 10, 2 );