Получение категорий в WordPress: функция get_categories()

## Функция get_categories(): Получение категорий в WordPress

Функция get_categories() в WordPress позволяет получить список категорий в виде массива объектов. Вы можете задавать различные параметры для того, чтобы указать, какие категории нужно получить и в каком порядке их сортировать.

### Параметры

Параметры, которые передаются в эту функцию, аналогичны параметрам функции wp_list_categories(). Вы можете передавать их в виде массива или строковой команды, например: type=post&order=DESC.

**Основные параметры**:

- **taxonomy** (обязательно) — название таксономии, для работы с которой вы хотите получить категории. Это может быть строка или массив.
- **number** (число) — максимальное количество категорий, которые нужно получить. По умолчанию — все.
- **orderby** (строка) — поле, по которому нужно сортировать результаты (например, по имени, ID и др.).
- **order** (строка) — направление сортировки (ASC - по возрастанию, DESC - по убыванию).
- **hide_empty** (true/false) — отображать или скрывать категории, у которых нет постов (по умолчанию — true, скрыть).

### Возвращаемое значение

Функция возвращает массив объектов WP_Term, которые представляют собой категории. Если категорий не удаётся получить, возвращается пустой массив.

**Пример структуры возвращаемого массива**:

```php
Array
(
    [0] => WP_Term Object
        (
            [term_id] => 7
            [name] => Codex
            [slug] => codex
            [count] => 17
        )
    [1] => WP_Term Object ( ... )
    ...
)

Простой шаблон использования

Ниже приведен пример того, как использовать функцию get_categories():

$categories = get_categories( [
    'taxonomy'     => 'category',
    'orderby'      => 'name',
    'order'        => 'ASC',
    'hide_empty'   => 1,
] );

if( $categories ){
    foreach( $categories as $cat ){
        echo $cat->name . ' (' . $cat->count . ')
'; } }

Полный список аргументов

Для понимания всех параметров, которые можно использовать с get_categories(), ознакомьтесь с необходимыми в методе WP_Term_Query::__construct():

  • exclude (строка/массив) — массив ID категорий, которые нужно исключить.
  • include (строка/массив) — массив ID категорий, которые нужно включить.
  • orderby (строка) — по какому полю сортировать.
  • search (строка) — поиск по имени категории.
  • parent (число) — ID родительской категории для получения только дочерних категорий.

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

1. Вывод выпадающего списка категорий

С помощью функции wp_dropdown_categories() можно создать выпадающий список категорий, но он будет менее гибким:

wp_dropdown_categories([
    'hide_empty' => 0,
    'name' => 'category_parent',
    'orderby' => 'name',
    'hierarchical' => true,
    'show_option_none' => __('Не выбрано')
]);

Однако для большей гибкости лучше использовать get_categories():

2. Список категорий с описаниями

Вы можете вывести все категории с их описаниями следующим образом:

$categories = get_categories(['orderby' => 'name', 'order' => 'ASC']);
foreach( $categories as $category ){
    echo '

Категория: ' . $category->name . '

'; echo '

Описание: ' . $category->description . '

'; echo '

Количество постов: ' . (int)$category->count . '

'; }

3. Получение только этих категорий, в которых есть посты

По умолчанию get_categories() возвращает только непустые категории. Если вы хотите получать все категории, независимо от наличия постов, укажите параметр hide_empty => false:

$args = ['hide_empty' => false];
$cats = get_categories($args); // вернет все категории (включая пустые)

Заключение

Функция get_categories() позволяет гибко управлять выводом категорий в WordPress. Используйте её для создания навигации на вашем сайте и для упрощения работы с таксономиями.

Leave a Reply

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