Хук register_taxonomy_args
позволяет разработчикам модифицировать аргументы, которые передаются при регистрации таксономии. Этот фильтр может быть полезен для настройки видимости, иерархии, отображения метабоксов и других параметров, которые влияют на работу таксономий в WordPress.
apply_filters( 'register_taxonomy_args', array $args, string $taxonomy, array $object_type );
Фильтр register_taxonomy_args
применяется к массиву аргументов, передаваемых в функцию register_taxonomy()
. С его помощью можно изменять настройки таксономии перед её регистрацией, включая иерархичность, видимость в REST API и другие параметры.
Параметры
$args
(array): Массив аргументов для регистрации таксономии. Полный список параметров можно найти в документации кregister_taxonomy()
.$taxonomy
(string): Ключ (название) таксономии.$object_type
(array): Массив имен типов объектов, к которым будет применяться таксономия.
Пример 1: Включение иерархии для пользовательской таксономии
В этом примере добавим иерархическую структуру к пользовательской таксономии custom_taxonomy
. Это сделает её похожей на категории, позволяя создавать вложенные термины.
add_filter( 'register_taxonomy_args', 'enable_hierarchy_for_custom_taxonomy', 10, 2 );
function enable_hierarchy_for_custom_taxonomy( $args, $taxonomy ) {
if ( 'custom_taxonomy' === $taxonomy ) {
// Устанавливаем параметр иерархии
$args['hierarchical'] = true;
}
return $args;
}
Пример 2: Отключение метабокса для таксономии «Категория» в редакторе записей
Этот пример показывает, как скрыть метабокс для выбора категорий на странице редактирования записи. Это может быть полезно, если категории больше не нужны для конкретного типа записей или если планируется использовать другую таксономию.
add_filter( 'register_taxonomy_args', 'remove_category_metabox', 10, 2 );
function remove_category_metabox( $args, $taxonomy ) {
if ( 'category' === $taxonomy ) {
// Отключаем отображение метабокса в редакторе
$args['meta_box_cb'] = false;
}
return $args;
}
Пример 3: Включение поддержки REST API для пользовательской таксономии
Если требуется, чтобы пользовательская таксономия отображалась в REST API, можно использовать данный фильтр для добавления параметра show_in_rest
.
add_filter( 'register_taxonomy_args', 'enable_rest_for_taxonomy', 10, 2 );
function enable_rest_for_taxonomy( $args, $taxonomy ) {
if ( 'product_type' === $taxonomy ) {
// Включаем поддержку REST API
$args['show_in_rest'] = true;
}
return $args;
}
Пример 4: Установка пользовательского названия метабокса для таксономии
В этом примере мы изменим заголовок метабокса, чтобы лучше описать пользовательскую таксономию.
add_filter( 'register_taxonomy_args', 'customize_taxonomy_metabox_label', 10, 2 );
function customize_taxonomy_metabox_label( $args, $taxonomy ) {
if ( 'genre' === $taxonomy ) {
// Изменяем название метабокса
$args['labels']['name'] = 'Жанры произведений';
}
return $args;
}
Пример 5: Ограничение видимости пользовательской таксономии в интерфейсе
Этот фильтр может также помочь скрыть таксономию из админ-панели, оставив её только для программного использования.
add_filter( 'register_taxonomy_args', 'limit_taxonomy_visibility', 10, 2 );
function limit_taxonomy_visibility( $args, $taxonomy ) {
if ( 'private_taxonomy' === $taxonomy ) {
// Отключаем отображение в интерфейсе
$args['public'] = false;
}
return $args;
}
Заключение
Хук register_taxonomy_args
предоставляет широкий контроль над параметрами таксономий в WordPress. С его помощью можно легко настраивать видимость, иерархию, отображение в REST API и другие аспекты, что делает его полезным инструментом для кастомизации поведения таксономий.