Функция get_term() в WordPress
Функция get_term()
применяется для получения всех данных термина из базы данных по его идентификатору (term ID). Эта функция полезна для работы с объектами терминов, такими как категории и метки (теги). Давайте разберемся, как она работает, и какие у нее возможности.
Основные параметры функции
При использовании функции get_term()
вы передаете четыре параметра:
get_term( $term, $taxonomy, $output, $filter );
-
$term (обязательный): Это идентификатор термина (целое число) или объект
WP_Term
. Если это число, данные термина берутся из базы данных или кэша, если они доступны. Если это объектstdClass
(например, результат запроса к базе данных), применяются фильтры, и возвращается объектWP_Term
. -
$taxonomy: Имя таксономии, к которой принадлежит термин. Этот параметр не обязателен, начиная с версии 4.4.
-
$output: Тип возвращаемых данных. Может быть:
OBJECT
(по умолчанию) — возвращает объектWP_Term
.ARRAY_A
— возвращает ассоциативный массив.ARRAY_N
— возвращает числовой массив.
-
$filter: Метод очистки полей термина (по умолчанию 'raw').
Примеры использования
Пример 1: Получение данных термина из базы данных
Предположим, у нас есть ID термина:
$term_id = 65;
$taxonomy = 'my_taxonomy'; // Этот параметр не обязателен с версии 4.4
$term = get_term( $term_id, $taxonomy );
// Теперь переменная содержит данные о термине
$slug = $term->slug; // Альтернативное имя для элемента
$name = $term->name; // Имя элемента
$desc = $term->description; // Описание элемента
Пример 2: Получение данных без указания имени таксономии
Теперь можно получать данные без указания имени таксономии:
$term = get_term( 562 );
print_r( $term );
/*
Вывод:
WP_Term Object
(
[term_id] => 562
[name] => Records
[slug] => zapisi
[term_group] => 0
[term_taxonomy_id] => 582
[taxonomy] => my_taxonomy_name
[description] =>
[parent] => 0
[count] => 1
[filter] => raw
)
*/
Пример 3: Использование кэша
Функция get_term()
использует кэш объектов WordPress для хранения ранее извле��енных данных термина. Это позволяет избежать повторных запросов к базе данных:
$term = get_term( 1 , 'store' );
echo $term->name; // Вывод имени термина
$term = get_term( 1 , 'store' );
echo $term->slug; // Данные будут взяты из кэша, не будет дополнительных запросов к базе данных
Возвращаемые значения
Функция get_term()
может вернуть:
- Объект типа
WP_Term
или массив на успешное завершение, в зависимости от параметра$output
. - Объект
WP_Error
, если заданная таксономия не существует. null
в случае других сбоев.
Дополнительные заметки
- Если
$taxonomy
не указана и функция не может найти термин, это также будет ошибкой. - Используйте фильтры для модификации термина. Например,
apply_filters('get_term', $_term, $taxonomy)
позволяет вам изменить объект термина перед его возвратом.
Заключение
Функция get_term()
очень полезна для работы с терминами в WordPress. Она позволяет легко получать данные о терминах и использовать их в ваших темах и плагинах. Не забудьте использовать кэширование для повышения производительности вашего сайта!