Создание собственных видов таксономий в WordPress с примерами кода

WordPress предоставляет мощный механизм таксономий, позволяющий организовывать контент по категориям и меткам. Но стандартных категорий и тегов часто недостаточно для реализации уникальных требований сайта. В таких случаях на помощь приходят собственные виды таксономий (Custom Taxonomies), которые позволяют создавать любые типы классификаций для записей, страниц или пользовательских типов записей.

Что такое собственные виды таксономий в WordPress

Таксономия — это способ группировки записей. В WordPress по умолчанию есть две таксономии: категории и метки. Собственные таксономии — это пользовательские классификации, которые можно создать для улучшения структуры сайта и удобства навигации.

Например, если у вас сайт с рецептами, можно создать таксономию «Ингредиенты» или «Тип кухни». Для сайта с фильмами — «Жанр», «Режиссёр» и так далее.

Создание собственных таксономий позволяет:

  • Улучить SEO за счет более точной группировки контента;
  • Повысить юзабилити сайта с помощью удобных фильтров и навигации;
  • Организовать контент под конкретные задачи проекта.

Как зарегистрировать собственную таксономию в WordPress

Для регистрации таксономии используется функция register_taxonomy. Лучше всего регистрировать таксономии в хуке init. Ниже пример регистрации таксономии wpdo_genre для типа записи post:

function wpdo_register_taxonomy_genre() {
    $labels = array(
        'name'              => 'Жанры',
        'singular_name'     => 'Жанр',
        'search_items'      => 'Поиск жанров',
        'all_items'         => 'Все жанры',
        'parent_item'       => 'Родительский жанр',
        'parent_item_colon' => 'Родительский жанр:',
        'edit_item'         => 'Редактировать жанр',
        'update_item'       => 'Обновить жанр',
        'add_new_item'      => 'Добавить новый жанр',
        'new_item_name'     => 'Название нового жанра',
        'menu_name'         => 'Жанры',
    );

    $args = array(
        'hierarchical'      => true, // Как категории, а не метки
        'labels'            => $labels,
        'show_ui'           => true,
        'show_admin_column' => true,
        'query_var'         => true,
        'rewrite'           => array('slug' => 'genre'),
    );

    register_taxonomy('wpdo_genre', array('post'), $args);
}
add_action('init', 'wpdo_register_taxonomy_genre');

В данном коде мы создаем и настраиваем таксономию «Жанры» для стандартных записей. Параметр hierarchical делает таксономию древовидной, как категории. Если поставить false, таксономия будет как метки.

Пояснение основных параметров

  • hierarchical — определяет структуру (категории или метки);
  • labels — набор текстовых меток для интерфейса;
  • show_ui — отображать ли интерфейс в админке;
  • show_admin_column — показывать ли колонку с таксономией в списке записей;
  • rewrite — правила ЧПУ для таксономии;
  • query_var — разрешает использование таксономии в запросах.

Добавление таксономии к пользовательским типам записей

Если у вас есть пользовательские типы записей (Custom Post Types), можно прикрепить к ним свои таксономии. Например, если вы создали тип записи recipe для рецептов, прикрепим к нему таксономию wpdo_cuisine (Тип кухни):

function wpdo_register_taxonomy_cuisine() {
    $labels = array(
        'name'              => 'Типы кухни',
        'singular_name'     => 'Тип кухни',
        'search_items'      => 'Поиск типов кухни',
        'all_items'         => 'Все типы кухни',
        'edit_item'         => 'Редактировать тип кухни',
        'update_item'       => 'Обновить тип кухни',
        'add_new_item'      => 'Добавить новый тип кухни',
        'new_item_name'     => 'Название нового типа кухни',
        'menu_name'         => 'Типы кухни',
    );

    $args = array(
        'hierarchical'      => false, // как метки
        'labels'            => $labels,
        'show_ui'           => true,
        'show_admin_column' => true,
        'update_count_callback' => '_update_post_term_count',
        'query_var'         => true,
        'rewrite'           => array('slug' => 'cuisine'),
    );

    register_taxonomy('wpdo_cuisine', array('recipe'), $args);
}
add_action('init', 'wpdo_register_taxonomy_cuisine');

Важно, чтобы пользовательский тип записи recipe был зарегистрирован заранее или в том же хуке init, но с более ранним приоритетом.

Вывод таксономий на фронтенде и в шаблонах

Чтобы вывести термины таксономии для записи, используйте функцию wp_get_post_terms или get_the_terms. Например, чтобы вывести жанры для текущей записи:

$terms = wp_get_post_terms(get_the_ID(), 'wpdo_genre');
if (!empty($terms) && !is_wp_error($terms)) {
    echo '<ul>';
    foreach ($terms as $term) {
        echo '<li>' . esc_html($term->name) . '</li>';
    }
    echo '</ul>';
} else {
    echo 'Жанры не указаны';
}

Этот код можно вставить в шаблон single.php или в любой другой файл темы, где нужно отобразить таксономии.

Фильтрация записей по собственным таксономиям

Для вывода записей, принадлежащих определенной таксономии, можно использовать WP_Query с параметром tax_query. Пример запроса для получения всех постов жанра «комедия»:

$query = new WP_Query(array(
    'post_type' => 'post',
    'tax_query' => array(
        array(
            'taxonomy' => 'wpdo_genre',
            'field'    => 'slug',
            'terms'    => 'komediya',
        ),
    ),
));

if ($query->have_posts()) {
    while ($query->have_posts()) {
        $query->the_post();
        echo '<h2><a href="' . get_permalink() . '">' . get_the_title() . '</a></h2>';
    }
    wp_reset_postdata();
} else {
    echo 'Записи не найдены';
}

Это полезно для создания страниц с фильтрами, архивов и кастомных выводов.

Рекомендации и полезные плагины для работы с таксономиями

Хотя регистрация таксономий через код — лучший способ для разработчиков, можно использовать плагины для удобного управления:

  • Custom Post Type UI — удобный плагин для создания и управления типами записей и таксономиями без кода;
  • Advanced Custom Fields — позволяет расширять таксономии пользовательскими полями;
  • Clearfy Pro — помогает оптимизировать и управлять функционалом сайта, включая таксономии.

Используйте эти инструменты, если не хотите писать код или хотите расширить возможности таксономий.

Советы по SEO для собственных таксономий

Чтобы таксономии приносили пользу с точки зрения SEO, учтите следующие моменты:

  • Настраивайте ЧПУ (человеко-понятные URL) с помощью параметра rewrite;
  • Добавляйте описания и метаданные для терминов таксономий;
  • Используйте плагины SEO, например, Rank Math или Yoast SEO, для настройки таксономий;
  • Избегайте дублированного контента, если создаете таксономии с похожими терминами.

Правильное использование собственных таксономий сделает ваш сайт более удобным и повысит позиции в поисковой выдаче.

WooCommerce: отладка проблем с оплатой через Яндекс.Кассу
13.05.2026
Как сделать кэширование в WordPress с помощью плагинов
05.11.2025
Как удалить редиректы в WordPress после удаления плагинов
04.02.2026
Как использовать REST API для управления пользователями в WordPress
29.01.2026
WooCommerce: как убрать обязательное поле адреса доставки при оформлении заказа
23.06.2026