Функция GET_CATEGORY() в WordPress: работа с категориями, синтаксис, примеры

# Функция GET_CATEGORY() в WordPress

Функция get_category() позволяет получить данные категории по её идентификатору или объекту категории.

### Как это работает

Если вы передаете аргумент $category как объект, то предполагается, что это объект строки категории, полученный из базы данных. В этом случае данные категории будут кешироваться.

Если вы передаете $category как целое число (идентификатор категории), то функция получит эту категорию из базы данных, если она ещё не кеширована, и вернет её.

Функция проходит через несколько фильтров и, в конце концов, очищает данные категорий на основе значения параметра $filter.

### Использует

Функция get_term().

**Время выполнения:** 
- 1 раз — 0.000443 сек (быстро)
- 50000 раз — 0.92 сек (очень быстро)

**Версия PHP:** 7.0.5, **Версия WordPress:** 4.5.1

**Хуки:** Не используются.

### Возврат значения

Функция возвращает объект, массив, ошибку WP_Error или null. Если категория не существует, возвращается null, а если $category пустой, возвращается WP_Error.

### Синтаксис функции

```php
get_category( $category, $output, $filter );
  • $category (int|object) (обязательный) — Идентификатор категории или объект строки категории.
  • $output (string) — Необходимый формат возврата. Может принимать значения: OBJECT, ARRAY_A или ARRAY_N, что соответствует объекту WP_Term, ассоциативному массиву или числовому массиву соответственно.
    • По умолчанию: OBJECT
  • $filter (string) — Ка�� очищать поля категории.
    • По умолчанию: 'raw'

Примеры использования

Пример 1: Вывод данных текущей категории

$cat = get_category( get_query_var('cat') );

// Либо:
if( is_category() ){
    $cat = get_category( get_queried_object() );
}

print_r( $cat );

Результат может выглядеть следующим образом:

stdClass Object
(
    [term_id] => 85
    [name] => Название категории
    [slug] => nazvanie-kategorii
    [term_group] => 0
    [term_taxonomy_id] => 85
    [taxonomy] => category
    [description] =>
    [parent] => 70
    [count] => 0
    [cat_ID] => 85
    [category_count] => 0
    [category_description] =>
    [cat_name] => Название категории
    [category_nicename] => nazvanie-kategorii
    [category_parent] => 70
)

Теперь мы можем получить данные категории следующим образом:

echo $cat->name; // Выводит название категории
echo $cat->slug; // Выводит слаг категории
echo $cat->count; // Выводит количество постов в категории
// и так далее...

Изменения

С версии: 1.5.1 — Введена функция.

Код функции GET_CATEGORY()

function get_category( $category, $output = OBJECT, $filter = 'raw' ) {
    $category = get_term( $category, 'category', $output, $filter );

    if ( is_wp_error( $category ) ) {
        return $category;
    }

    _make_cat_compat( $category );

    return $category;
}

Связанные функции

  • cat_is_ancestor_of()
  • category_description()
  • category_exists()
  • get_cat_ID()
  • get_cat_name()
  • get_categories()
  • get_category_by_slug()
  • get_category_link()
  • get_category_parents()
  • get_the_category_by_ID()
  • in_category()
  • single_cat_title()
  • wp_create_category()
  • wp_dropdown_categories()
  • wp_insert_category()
  • wp_list_categories()

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *