get_term()
Получает данные об элементе таксономии (термине) по переданному ID.
В функции есть два хука:
- get_term - срабатывает всегда.
- get_(taxonomy) - срабатывает для определенного элемента таксономии.
Оба хука в качестве параметров получают объект (массив) элемента и название таксономии. Оба хука должны вернуть объект (массив) элемента.
Второй хук term_(taxonomy)
динамический, т.е. в нем (taxonomy) должно быть заменено на название таксономии. Например для категорий, название таксономии у которых "category", название фильтра будет таким: "get_category". Может пригодится для произвольных таксономий.
Функция кэширует результат и при повторном получении того же термина, запроса к БД уже не происходить - результат просто возвращается из кэша.
Чтобы получить термин по полю: name или slug, используйте get_term_by().
Функция идентична get_category(), только в этой функции можно указать название таксономии с которой работать.
Использует: sanitize_term(). Чистит элемент на основе правил фильтра указанного в параметре $filter.
Хуки из функции
Возвращает
WP_Term|Массив|WP_Error|null
.
WP_Term
(объект термина) — когда термин найден и $output = OBJECT (по умолчанию).Массив
— когда термин найден и $output = ARRAY_A или $output = ARRAY_N.null
— когда термин не найден.WP_Error
(объект) — когда таксономии не существует.
Использование
$term = get_term( $term, $taxonomy, $output, $filter );
- $term(число/объект) (обязательный)
- Если передан ID, то данные будут получены из БД. Если передан объект, то будут применены фильтры и возвращен переданный объект.
- $taxonomy(строка)
- Название таксономии, к которой принадлежит элемент $term.
С версии 4.4. параметр стал необязательным.
По умолчанию: '' - $output(строка)
Каким видом массива возвращать данные:
- OBJECT - объект.
- ARRAY_A - ассоциативный массив.
- ARRAY_N - индексированный массив.
По умолчанию: OBJECT
- $filter(строка)
- Как очищать поля массива перед возвращением.
По умолчанию: 'raw'
Примеры
#1 Получим данные об элементе таксономии из БД:
$term_id = 65; $taxonomy = 'my_taxonomy'; // С версии 4.4. параметр стал не обязательным. $term = get_term( $term_id, $taxonomy ); // Теперь, переменная содержит данные о элементе таксономии. // Альтернативное название элемента находится здесь $slug = $term->slug; // Название элемента $name = $term->name; // А так мы получим описание элемента таксономии $desc = $term->description;
#2 Получение элемента таксономии без указания таксономии
С версии 4.4. стало возможными не указывать параметр $taxonomy:
$term = get_term( 562 ); print_r( $term ); /* Выведет: WP_Term Object ( [term_id] => 562 [name] => Записи [slug] => zapisi [term_group] => 0 [term_taxonomy_id] => 582 [taxonomy] => my_taxonomy_name [description] => [parent] => 0 [count] => 1 [filter] => raw ) */
Заметки
- Смотрите: sanitize_term_field() The $context param lists the available values for get_term_by() $filter param.
Список изменений
С версии 2.3.0 | Введена. |
С версии 4.4.0 | Converted to return a WP_Term object if $output is OBJECT. The $taxonomy parameter was made optional. |