В WordPress хук taxonomy_labels_(taxonomy)
предоставляет возможность изменить лейблы (названия) для специфических таксономий, таких как категории или теги. Это полезный инструмент для кастомизации пользовательского интерфейса и отображения таксономий на сайте.
apply_filters( 'taxonomy_labels_{$taxonomy}', object $labels );
Фильтр taxonomy_labels_(taxonomy)
позволяет изменить стандартные лейблы таксономий, такие как «Рубрики», «Теги» и другие, на более подходящие для вашего проекта. Применяя этот фильтр, можно изменить любые метки, которые отображаются в админке WordPress, такие как название таксономии, метки в кнопках, пункты меню и другие элементы.
Название фильтра динамически зависит от slug таксономии, что позволяет изменять лейблы для любой зарегистрированной таксономии. Например, для таксономии «category» фильтр будет называться taxonomy_labels_category
.
Параметры
- $labels (object): Объект с лейблами для таксономии, содержащий следующие значения:
name
– общее название таксономии.singular_name
– название в единственном числе.search_items
– текст для поиска.all_items
– текст для отображения всех элементов.- И другие метки для управления элементами таксономии.
Применение фильтра
Для применения фильтра необходимо указать название таксономии в имени фильтра и добавить функцию обработки. Пример:
add_filter( 'taxonomy_labels_(taxonomy)', 'wp_kama_taxonomy_labels_filter' );
/**
* Функция для обработки фильтра `taxonomy_labels_(taxonomy)`
*
* @param object $labels Объект с лейблами таксономии.
* @return object
*/
function wp_kama_taxonomy_labels_filter( $labels ) {
// здесь можно изменять лейблы
return $labels;
}
Пример 1: Изменение лейблов для категории
Предположим, вы хотите изменить название категории с «Рубрики» на «Авторы». Для этого используем фильтр с указанием таксономии «category»:
add_filter( 'taxonomy_labels_category', 'change_category_labels_to_authors' );
function change_category_labels_to_authors( $labels ) {
$new_labels = array(
'name' => 'Авторы',
'singular_name' => 'Автор',
'search_items' => 'Поиск авторов',
'all_items' => 'Все авторы',
'parent_item' => 'Родительский автор',
'parent_item_colon' => 'Родительский автор:',
'edit_item' => 'Изменить автора',
'view_item' => 'Просмотреть автора',
'update_item' => 'Обновить автора',
'add_new_item' => 'Добавить нового автора',
'new_item_name' => 'Имя нового автора',
'not_found' => 'Авторы не найдены.',
'no_terms' => 'Авторов нет',
'items_list_navigation' => 'Навигация по списку авторов',
'items_list' => 'Список авторов',
'back_to_items' => '← Назад к авторам',
'menu_name' => 'Авторы',
);
// Возвращаем новый объект лейблов
return (object) array_merge((array) $labels, $new_labels);
}
Пример 2: Изменение лейблов для тегов
Если вы хотите изменить лейблы для тегов (таксономия «post_tag»), можно использовать аналогичный подход:
add_filter( 'taxonomy_labels_post_tag', 'change_post_tag_labels' );
function change_post_tag_labels( $labels ) {
$new_labels = array(
'name' => 'Тематические теги',
'singular_name' => 'Тематический тег',
'search_items' => 'Поиск тегов',
'all_items' => 'Все теги',
'parent_item' => 'Родительский тег',
'parent_item_colon' => 'Родительский тег:',
'edit_item' => 'Изменить тег',
'view_item' => 'Просмотреть тег',
'update_item' => 'Обновить тег',
'add_new_item' => 'Добавить новый тег',
'new_item_name' => 'Название нового тега',
'not_found' => 'Теги не найдены.',
'no_terms' => 'Тегов нет',
'items_list_navigation' => 'Навигация по списку тегов',
'items_list' => 'Список тегов',
'back_to_items' => '← Назад к тегам',
'menu_name' => 'Теги',
);
// Возвращаем новый объект лейблов
return (object) array_merge((array) $labels, $new_labels);
}
Теперь лейблы для тегов будут отображать термины, связанные с «Тематическими тегами», вместо стандартного текста «Теги».
Пример 3: Полная кастомизация лейблов
Вы можете настроить абсолютно любые элементы лейблов, чтобы они полностью соответствовали вашим потребностям, например, изменить метки для добавления, редактирования или навигации:
add_filter( 'taxonomy_labels_category', 'customize_category_labels' );
function customize_category_labels( $labels ) {
$labels->add_new_item = 'Добавить новый тип контента';
$labels->edit_item = 'Редактировать категорию';
$labels->view_item = 'Посмотреть категорию';
return $labels;
}
Этот код изменяет метки для добавления, редактирования и просмотра категории на более специфичные значения.
Заключение
Хук taxonomy_labels_(taxonomy)
— мощный инструмент для кастомизации лейблов таксономий в WordPress. Он позволяет изменить стандартные метки, такие как «Рубрики» или «Теги», чтобы они соответствовали требованиям вашего проекта. Благодаря гибкости и динамическому подходу, вы можете легко адаптировать вывод таксономий в админке и на сайте.