Abilities API

Framework for registering and executing discrete capabilities within WordPress.

Since: 6.9.0
Source: wp-includes/abilities-api.php, wp-includes/abilities-api/

Components

Component Description
functions.md Core registration and retrieval functions
class-wp-ability.md Individual ability instance
class-wp-abilities-registry.md Ability registry singleton
class-wp-ability-category.md Ability category instance
class-wp-ability-categories-registry.md Category registry singleton
hooks.md Actions and filters

Registration Flow

wp_abilities_api_categories_init
    └── wp_register_ability_category()
            └── WP_Ability_Categories_Registry::register()
                    └── new WP_Ability_Category()

wp_abilities_api_init
    └── wp_register_ability()
            └── WP_Abilities_Registry::register()
                    └── new WP_Ability()

Execution Flow

WP_Ability::execute()
    ├── normalize_input()
    ├── validate_input()
    ├── check_permissions()
    ├── do_action('wp_before_execute_ability')
    ├── do_execute()
    ├── validate_output()
    ├── do_action('wp_after_execute_ability')
    └── return result