Функция get_category()
в WordPress используется для получения данных категории на основе её ID или объекта категории. Это удобный способ получить информацию о категории, которую можно использовать в теме или плагине.
get_category( int|object $category, string $output = OBJECT, string $filter = 'raw' ): object|array|WP_Error|null
Параметры
- $category (int|object) (обязательный)
ID категории или объект категории. - $output (string) (опциональный)
Тип данных, которые нужно вернуть. Это может быть:OBJECT
— объект WP_Term (по умолчанию),ARRAY_A
— ассоциативный массив,ARRAY_N
— числовой массив.
- $filter (string) (опциональный)
Способ фильтрации данных категории. По умолчанию —'raw'
(без фильтрации).
Возвращаемое значение
- object|array|WP_Error|null — Данные категории в зависимости от параметра
$output
. Возвращает объект WP_Term, массив или ошибку, если категория не существует.
Описание
Функция get_category()
позволяет получить полную информацию о категории, включая её ID, название, слаг, описание, количество записей в ней и родительскую категорию. Если передать объект категории в функцию, она будет использовать кэшированные данные. В противном случае данные будут получены из базы данных.
Пример 1: Получение данных категории по ID
Этот пример показывает, как получить данные категории, используя её ID, и вывести их на экран.
<?php
// Получаем данные категории с ID 23
$category = get_category( 23 );
// Выводим данные категории
echo 'Название категории: ' . $category->name . '<br>';
echo 'Слаг категории: ' . $category->slug . '<br>';
echo 'Количество записей: ' . $category->count . '<br>';
?>
Пример 2: Получение данных категории в виде массива
В этом примере мы получаем данные категории в виде ассоциативного массива, чтобы работать с данными напрямую как с элементами массива.
<?php
// Получаем данные категории с ID 35 в виде ассоциативного массива
$category = get_category( 35, ARRAY_A );
// Выводим данные
echo 'ID категории: ' . $category['term_id'] . '<br>';
echo 'Имя категории: ' . $category['name'] . '<br>';
?>
Пример 3: Проверка количества записей в категории
Если нужно выполнить какое-либо действие, основываясь на количестве записей в категории, можно использовать следующий пример:
<?php
// Проверим, есть ли в категории с ID 15 хотя бы одна запись
$category = get_category( 15 );
if ( $category->count > 0 ) {
echo 'В категории есть записи.';
} else {
echo 'Категория пуста.';
}
?>
Пример 4: Получение текущей категории на странице категории
Этот пример показывает, как получить данные текущей категории, если вы находитесь на странице категории:
<?php
// Получаем ID текущей категории с помощью get_query_var()
$current_category = get_category( get_query_var( 'cat' ) );
// Выводим название текущей категории
echo 'Текущая категория: ' . $current_category->name;
?>
Пример 5: Работа с объектом WP_Term
Функция возвращает объект WP_Term, который содержит все основные данные о категории. Вот пример того, как можно вывести объект и его содержимое:
<?php
// Получаем объект категории с ID 42
$category = get_category( 42 );
// Выводим содержимое объекта
echo '<pre>';
print_r( $category );
echo '</pre>';
?>
Результат:
WP_Term Object
(
[term_id] => 42
[name] => Новости
[slug] => news
[term_group] => 0
[term_taxonomy_id] => 42
[taxonomy] => category
[description] => Все последние новости
[parent] => 0
[count] => 25
[filter] => raw
[cat_ID] => 42
[category_count] => 25
[category_description] => Все последние новости
[cat_name] => Новости
[category_nicename] => news
[category_parent] => 0
)
Пример 6: Обработка ошибки
Если передать неверный ID категории, функция вернёт null
или WP_Error
. Пример обработки ошибки:
<?php
$category = get_category( 999 ); // Неверный ID категории
if ( is_wp_error( $category ) || $category === null ) {
echo 'Категория не найдена.';
} else {
echo 'Категория найдена: ' . $category->name;
}
?>
Заключение
Функция get_category()
— это полезный инструмент для получения информации о категориях WordPress. Она предоставляет гибкость в работе с данными категории, будь то в виде объекта, ассоциативного массива или числового массива. Это делает её незаменимой для разработки тем и плагинов, работающих с таксономиями и категориями.