Функция get_taxonomy_labels() в WordPress
Функция get_taxonomy_labels() используется для получения всех меток таксономии из объекта таксономии. Простыми словами, она помогает нам узнать, как будут называться различные элементы таксономии, такие как категории или теги.
Как работает функция
Функция get_taxonomy_labels() принимает объект таксономии и возвращает объект с метками этой таксономии. Она использует внутренние функции WordPress для формирования и обработки меток.
Возвращаемое значение
Функция возвращает объект, который содержит метки таксономии. Первая часть значений предназначена для нетаксовых таксономий (например, тегов), а вторая — для иерархических таксономий (например, категорий).
Использование функции
Как воспользоваться этой функцией? Для этого необходимо передать объект таксономии в функцию. Вот пример:
$tax = get_taxonomy( 'category' ); // Получаем объект таксономии для категории
$labels = get_taxonomy_labels( $tax ); // Получаем метки таксономии
print_r( $labels ); // Выводим на экран метки
Пример вывода меток
При выполнении вышеуказанного кода, вы получите следующий результат:
stdClass Object
(
[name] => Categories
[singular_name] => Category
[search_items] => Search categories
[popular_items] =>
[all_items] => All categories
[parent_item] => Parent category
[parent_item_colon] => Parent category:
[edit_item] => Change categories
[view_item] => View categories
[update_item] => Update categories
[add_new_item] => Add new categories
[new_item_name] => New category name
[separate_items_with_commas] =>
[add_or_remove_items] =>
[choose_from_most_used] =>
[not_found] => No categories found.
[no_terms] => No categories
[menu_name] => Categories
[name_admin_bar] => category
)
Этот объект содержит все метки, связанные с таксономией "категории".
Как изменить метки
Если вы хотите изменить метки таксономии, вы можете использовать хуки. Существуют специальные хуки, такие как:
taxonomy_labels_categorytaxonomy_labels_post_tag
Эти хуки позволяют вам модифицировать метки для конкретной таксономии.
Пример изменения меток
add_filter( 'taxonomy_labels_category', 'custom_category_labels' );
function custom_category_labels( $labels ) {
$labels->all_items = 'Все категории'; // Изменяем метку "Все категории"
return $labels;
}
Журнал изменений
Функция get_taxonomy_labels() была впервые представлена в версии 3.0.0 и с тех пор была обновлена:
- 4.3.0 — добавлена метка
no_terms. - 4.4.0 — добавлены метки
items_list_navigationиitems_list. - 5.7.0 — добавлена метка
filter_by_item. - 6.6.0 — добавлена метка
template_name.
Код функции
Вот как выглядит код функции get_taxonomy_labels():
function get_taxonomy_labels( $tax ) {
$tax->labels = (array) $tax->labels;
if ( isset( $tax->helps ) && empty( $tax->labels['separate_items_with_commas'] ) ) {
$tax->labels['separate_items_with_commas'] = $tax->helps;
}
if ( isset( $tax->no_tagcloud ) && empty( $tax->labels['not_found'] ) ) {
$tax->labels['not_found'] = $tax->no_tagcloud;
}
$nohier_vs_hier_defaults = WP_Taxonomy::get_default_labels();
$nohier_vs_hier_defaults['menu_name'] = $nohier_vs_hier_defaults['name'];
$labels = _get_custom_object_labels( $tax, $nohier_vs_hier_defaults );
if ( ! isset( $tax->labels->template_name ) && isset( $labels->singular_name ) ) {
$labels->template_name = sprintf( _x( '%s Archives', 'taxonomy template name' ), $labels->singular_name );
}
$taxonomy = $tax->name;
$default_labels = clone $labels;
$labels = apply_filters( "taxonomy_labels_{$taxonomy}", $labels );
$labels = (object) array_merge( (array) $default_labels, (array) $labels );
return $labels;
}
Заключение
Функция get_taxonomy_labels() в WordPress являе��ся мощным инструментом для работы с метками таксономий. Она позволяет легко получать и изменять их, что делает работу с контентом более удобной и структурированной. Используйте её возможности для оптимизации вашего сайта на WordPress!