WP_Ability_Categories_Registry::register
Registers a new ability category.
Do not use this method directly. Instead, use the wp_register_ability_category()
Method of the class: WP_Ability_Categories_Registry{}
Hooks from the method
Returns
WP_Ability_Category|null. The registered ability category instance on success, null on failure.
Usage
$WP_Ability_Categories_Registry = new WP_Ability_Categories_Registry(); $WP_Ability_Categories_Registry->register( $slug, $args ): ?WP_Ability_Category;
- $slug(string) (required)
- The unique slug for the ability category. Must contain only lowercase alphanumeric characters and dashes.
- $args(array) (required)
- .
Notes
Changelog
| Since 6.9.0 | Introduced. |
WP_Ability_Categories_Registry::register() WP Ability Categories Registry::register code WP 7.0
public function register( string $slug, array $args ): ?WP_Ability_Category {
if ( $this->is_registered( $slug ) ) {
_doing_it_wrong(
__METHOD__,
/* translators: %s: Ability category slug. */
sprintf( __( 'Ability category "%s" is already registered.' ), esc_html( $slug ) ),
'6.9.0'
);
return null;
}
if ( ! preg_match( '/^[a-z0-9]+(?:-[a-z0-9]+)*$/', $slug ) ) {
_doing_it_wrong(
__METHOD__,
__( 'Ability category slug must contain only lowercase alphanumeric characters and dashes.' ),
'6.9.0'
);
return null;
}
/**
* Filters the ability category arguments before they are validated and used to instantiate the ability category.
*
* @since 6.9.0
*
* @param array<string, mixed> $args {
* The arguments used to instantiate the ability category.
*
* @type string $label The human-readable label for the ability category.
* @type string $description A description of the ability category.
* @type array<string, mixed> $meta Optional. Additional metadata for the ability category.
* }
* @param string $slug The slug of the ability category.
*/
$args = apply_filters( 'wp_register_ability_category_args', $args, $slug );
try {
// WP_Ability_Category::prepare_properties() will throw an exception if the properties are invalid.
$category = new WP_Ability_Category( $slug, $args );
} catch ( InvalidArgumentException $e ) {
_doing_it_wrong(
__METHOD__,
$e->getMessage(),
'6.9.0'
);
return null;
}
$this->registered_categories[ $slug ] = $category;
return $category;
}