wp_register_ability_category()WP 6.9.0

Регистрирует новую категорию возможностей в Abilities API.

Категории помогают группировать связанные возможности. Категорию нужно зарегистрировать раньше возможностей, которые на неё ссылаются.

Перед проверкой параметров массив $args проходит через фильтр wp_register_ability_category_args.

Функцию нужно вызывать только во время хука wp_abilities_api_categories_init. Иначе категория не будет зарегистрирована.

Хуков нет.

Возвращает

WP_Ability_Category|null.

  • WP_Ability_Category - объект зарегистрированной категории.
  • null - если зарегистрировать категорию не удалось.

Использование

wp_register_ability_category( $slug, $args ): ?WP_Ability_Category;
$slug(string) (обязательный)
Уникальный ярлык категории. Допускаются строчные латинские буквы, цифры и одиночные дефисы. Например, data-export.
$args(array) (обязательный)

Параметры категории:

  • label(string) (required)
    Название категории.

  • description(string) (required)
    Описание категории.

  • meta(array)
    Дополнительные метаданные. Необязательный параметр.

Примеры

#1 Регистрация категории возможностей

add_action(
	'wp_abilities_api_categories_init',
	'my_plugin_register_ability_categories'
);

function my_plugin_register_ability_categories(): void {
	wp_register_ability_category(
		'content-management',
		[
			'label'       => __( 'Content Management', 'my-plugin' ),
			'description' => __( 'Abilities for managing content.', 'my-plugin' ),
		]
	);
}

Заметки

Список изменений

С версии 6.9.0 Введена.

Код wp_register_ability_category() WP 7.0.2

function wp_register_ability_category( string $slug, array $args ): ?WP_Ability_Category {
	if ( ! doing_action( 'wp_abilities_api_categories_init' ) ) {
		_doing_it_wrong(
			__FUNCTION__,
			sprintf(
				/* translators: 1: wp_abilities_api_categories_init, 2: ability category slug. */
				__( 'Ability categories must be registered on the %1$s action. The ability category %2$s was not registered.' ),
				'<code>wp_abilities_api_categories_init</code>',
				'<code>' . esc_html( $slug ) . '</code>'
			),
			'6.9.0'
		);
		return null;
	}

	$registry = WP_Ability_Categories_Registry::get_instance();
	if ( null === $registry ) {
		return null;
	}

	return $registry->register( $slug, $args );
}