Changes between Version 45 and Version 47 of Ticket #64098
- Timestamp:
- 10/22/2025 07:23:39 AM (7 weeks ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #64098
- Property Keywords needs-dev-note needs-docs added; 2nd-opinion removed
-
Ticket #64098 – Description
v45 v47 11 11 Introduces a new Abilities API that allows WordPress plugins and themes to register and execute custom abilities with built-in permission checking, input/output validation via JSON Schema, and REST API integration. 12 12 13 ##Public Functions13 == Public Functions 14 14 15 ###Ability Management15 === Ability Management 16 16 - `wp_register_ability( string $name, array $args ): ?WP_Ability` - Registers a new ability (must be called on `wp_abilities_api_init` hook) 17 17 - `wp_unregister_ability( string $name ): ?WP_Ability` - Unregisters an ability … … 20 20 - `wp_get_abilities(): array` - Retrieves all registered abilities 21 21 22 ###Ability Category Management22 === Ability Category Management 23 23 - `wp_register_ability_category( string $slug, array $args ): ?WP_Ability_Category` - Registers an ability category (must be called on `wp_abilities_api_categories_init` hook) 24 24 - `wp_unregister_ability_category( string $slug ): ?WP_Ability_Category` - Unregisters an ability category … … 27 27 - `wp_get_ability_categories(): array` - Retrieves all registered ability categories 28 28 29 ##Public Classes29 == Public Classes 30 30 31 31 - `WP_Ability` - Encapsulates ability properties and methods (execute, check_permission, validate_input, etc.) … … 37 37 - `WP_REST_Abilities_V1_Run_Controller` - REST controller for executing abilities 38 38 39 ##REST API Endpoints39 == REST API Endpoints 40 40 41 ###Namespace: `wp-abilities/v1`41 === Namespace: `wp-abilities/v1` 42 42 43 ####List Category Abilities43 ==== List Category Abilities 44 44 - `GET /wp-abilities/v1/categories` - Retrieve all registered ability categories 45 45 - Query parameters: `page`, `per_page` 46 46 47 ####Get Single Category Ability47 ==== Get Single Category Ability 48 48 - `GET /wp-abilities/v1/categories/(?P<slug>[a-z0-9]+(?:-[a-z0-9]+)*)` - Retrieve a specific ability category by name 49 49 50 ####List Abilities50 ==== List Abilities 51 51 - `GET /wp-abilities/v1/abilities` - Retrieve all registered abilities 52 52 - Query parameters: `page`, `per_page`, `category` 53 53 54 ####Get Single Ability54 ==== Get Single Ability 55 55 - `GET /wp-abilities/v1/abilities/(?P<name>[a-zA-Z0-9\-\/]+)` - Retrieve a specific ability by name 56 56 57 ####Execute Ability57 ==== Execute Ability 58 58 - `GET|POST|DELETE /wp-abilities/v1/abilities/(?P<name>[a-zA-Z0-9\-\/]+)/run` - Execute an ability 59 59 - Supports multiple HTTP methods based on ability annotations … … 62 62 - Performs permission checks via ability's permission callback 63 63 64 ##Hooks64 == Hooks 65 65 66 ###Actions66 === Actions 67 67 - `wp_abilities_api_categories_init` - Fired when ability categories registry is initialized (register categories here) 68 68 - `wp_abilities_api_init` - Fired when abilities registry is initialized (register abilities here) … … 71 71 - `wp_after_execute_ability` - Fires immediately after an ability finished executing 72 72 73 ###Filters73 === Filters 74 74 - `wp_register_ability_category_args` - Filters ability category arguments before registration 75 75 - `wp_register_ability_args` - Filters ability arguments before registration