Функция get_term()
в WordPress используется для получения данных о термине (элементе таксономии) из базы данных по его ID. Эта функция может быть полезна для работы с таксономиями, такими как категории и метки, а также для пользовательских таксономий. Она поддерживает фильтры, позволяя модифицировать данные термина перед их возвращением.
get_term( int|WP_Term|object $term, string $taxonomy = '', string $output = OBJECT, string $filter = 'raw' ): WP_Term|array|WP_Error|null
Параметры:
- $term (int|WP_Term|object) — Обязательный. Если передан ID термина, данные будут получены из базы данных. Если передан объект, будут применены фильтры.
- $taxonomy (string) — Необязательный. Название таксономии, к которой принадлежит термин.
- $output (string) — Необязательный. Тип возвращаемых данных. Один из значений:
OBJECT
,ARRAY_A
,ARRAY_N
(по умолчанию —OBJECT
). - $filter (string) — Необязательный. Как очищать поля массива перед возвращением. По умолчанию —
'raw'
.
Возвращаемое значение:
- Возвращает объект
WP_Term
, массив или объектWP_Error
при ошибке. Если термин не найден, возвращаетnull
.
Пример 1: Получение термина по ID
В этом примере мы получим данные о термине с ID 42 из таксономии my_custom_taxonomy
.
$term_id = 42;
$taxonomy = 'my_custom_taxonomy'; // Указываем таксономию
$term = get_term($term_id, $taxonomy);
// Проверка успешности запроса
if (!is_wp_error($term)) {
// Альтернативное название элемента (слаг)
$slug = $term->slug;
// Название элемента
$name = $term->name;
// Описание элемента таксономии
$desc = $term->description;
echo "Слаг: $slug<br>";
echo "Название: $name<br>";
echo "Описание: $desc<br>";
} else {
echo "Термин не найден.";
}
Пример 2: Получение термина без указания таксономии
С версии 4.4 можно не указывать параметр $taxonomy
. В этом примере мы получим термин с ID 88.
$term = get_term(88); // Получаем термин без указания таксономии
// Выводим данные термина
if (!is_wp_error($term)) {
echo "<pre>";
print_r($term);
echo "</pre>";
} else {
echo "Термин не найден.";
}
Вывод:
WP_Term Object
(
[term_id] => 88
[name] => Мой новый термин
[slug] => moy-novyy-termin
[term_group] => 0
[term_taxonomy_id] => 90
[taxonomy] => my_custom_taxonomy
[description] => Это описание моего нового термина.
[parent] => 0
[count] => 5
[filter] => raw
)
Примечания
get_term()
использует кэширование, что означает, что при повторном запросе одного и того же термина не будет выполнен повторный запрос к базе данных, а данные будут извлечены из кэша.- Для получения термина по полям, таким как
name
илиslug
, используйте функциюget_term_by()
. - Функция
get_term()
также поддерживает хуки, такие какget_term
иget_<taxonomy>
, что позволяет вам модифицировать данные термина перед их возвратом.
Заключение
Функция get_term()
является мощным инструментом для работы с терминами в WordPress. Она предоставляет гибкость и позволяет получать данные о терминах как по ID, так и с применением различных фильтров.