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 749
$labels = apply_filters( "taxonomy_labels_{$taxonomy}", $labels );
