taxonomy_labels_(taxonomy)
Позволяет изменить лейблы (заголовки) у указанной таксономии (рубрики, тега и т.д.).
$taxonomy в названии фильтра - это slug таксономии, указываемый при регистрации в функции register_taxonomy() первым аргументом.
Чтобы изменить заголовки у типа поста, к примеру "Записи" заменить на "Товары" читайте:
- Как изменить «Записи» на любое другое слово в WordPress?
- post_type_labels_(post_type) - хук похож на этот хук, только используется для типов постов.
Использование
add_filter( 'taxonomy_labels_(taxonomy)', 'wp_kama_taxonomy_labels_filter' ); /** * Function for `taxonomy_labels_(taxonomy)` filter-hook. * * @param object $labels Object with labels for the taxonomy as member variables. * * @return object */ function wp_kama_taxonomy_labels_filter( $labels ){ // filter... return $labels; }
- $labels(объект)
Объект с переведенными заголовками таксономии.
Переменная
$labels
будет содержать следующие данные:stdClass Object ( [name] => Рубрики [singular_name] => Рубрика [search_items] => Поиск рубрик [popular_items] => [all_items] => Все рубрики [parent_item] => Родительская рубрика [parent_item_colon] => Родительская рубрика: [edit_item] => Изменить рубрику [view_item] => Просмотреть рубрику [update_item] => Обновить рубрику [add_new_item] => Добавить новую рубрику [new_item_name] => Название новой рубрики [separate_items_with_commas] => [add_or_remove_items] => [choose_from_most_used] => [not_found] => Рубрик не найдено. [no_terms] => Рубрик нет [items_list_navigation] => Навигация по списку рубрик [items_list] => Список рубрик [most_used] => Часто используемые [back_to_items] => ← Назад к рубрикам [menu_name] => Рубрики [name_admin_bar] => category )
Все свойства-лейблы, которые на этом хуке не были изменены, возьмутся из оригинала (код из движка):
// Создаётся дубликат оригинальных лейблов $default_labels = clone $labels; // Далее лейблы проходят через фильтр $labels = apply_filters( "taxonomy_labels_{$taxonomy}", $labels ); // Далее лейблы сливаются с оригинальными, заменяя при совпадении. $labels = (object) array_merge( (array) $default_labels, (array) $labels );
Так как в любом случае пользовательские лейблы и оригинальные будут слиты воедино с заменой, то передаваемые данные в фильтр практически не имею смысла, разве что для отладки.
Примеры
#1 Как изменить слово "Рубрики" на что-либо другое
## Изменяет лейблы у таксономии "Рубрики". add_filter( 'taxonomy_labels_'.'category', 'change_labels_category' ); function change_labels_category( $labels ) { // Запишем лейблы для изменения в виде массива для удобства $my_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 $my_labels; }
Список изменений
С версии 4.4.0 | Введена. |
Где вызывается хук
wp-includes/taxonomy.php 703
$labels = apply_filters( "taxonomy_labels_{$taxonomy}", $labels );