WordPress как на ладони
wordpress jino

taxonomy_labels_(taxonomy) хук-фильтр . WP 4.4.0

Позволяет изменить лейблы (заголовки) у указанной таксономии (рубрики, тега и т.д.).

$taxonomy в названии фильтра - это slug таксономии, указываемый при регистрации в функции register_taxonomy() первым аргументом.

Чтобы изменить заголовки у типа поста, к примеру "Записи" заменить на "Товары" читайте:

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

add_filter( 'taxonomy_labels_{$taxonomy}', 'filter_function_name_8659' );
function filter_function_name_8659( $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;
}

Где используется хук

Код хука-фильтра taxonomy_labels_(taxonomy)

Фрагмент из: wp-includes/taxonomy.php VER 4.9.8
...
	$taxonomy = $tax->name;

	$default_labels = clone $labels;

	/**
	 * Filters the labels of a specific taxonomy.
	 *
	 * The dynamic portion of the hook name, `$taxonomy`, refers to the taxonomy slug.
	 *
	 * @since 4.4.0
	 *
	 * @see get_taxonomy_labels() for the full list of taxonomy labels.
	 *
	 * @param object $labels Object with labels for the taxonomy as member variables.
	 */
	$labels = apply_filters( "taxonomy_labels_{$taxonomy}", $labels );

	// Ensure that the filtered labels contain all required default values.
	$labels = (object) array_merge( (array) $default_labels, (array) $labels );

	return $labels;
}

/**
 * Add an already registered taxonomy to an object type.
 *
 * @since 3.0.0
 *
 * @global array $wp_taxonomies The registered taxonomies.
 *
 * @param string $taxonomy    Name of taxonomy object.
...
campusboy 2947youtube.com/c/wpplus
Создатель YouTube канала wp-plus, на котором делюсь своим опытом. Активный пользователь wp-kama.ru. WordPress-разработчик. Разработка сайтов и лендингов. Доработка существующих проектов. Сопровождение ресурсов.
1 коммент
  • Александр cайт: seosprint25.ru

    Попробую у себя изменить. good2

    Ответить3 месяца назад #
Здравствуйте, !     Войти . Зарегистрироваться