WordPress: как создать и использовать собственные таксономии

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

Что такое пользовательские таксономии в WordPress

Таксономии — это механизм группировки записей. WordPress по умолчанию предлагает две встроенные таксономии: category и tag. Пользовательские таксономии позволяют расширить этот функционал, создавая свои собственные типы классификации, например, «Жанры», «Темы», «Проекты» и другие.

Пользовательские таксономии бывают двух типов:

  • Иерархические (как категории) — позволяют создавать вложенные термины.
  • Неиерархические (как метки) — плоские списки терминов без вложенности.

Создавая собственные таксономии, вы улучшаете навигацию и SEO вашего сайта, а также делаете структуру контента понятнее.

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

Для создания таксономии используется функция register_taxonomy(), которую нужно вызывать на хук init. Рассмотрим пример создания иерархической таксономии genre для постов типа post.

add_action('init', 'wpfaq_register_taxonomy_genre');
function wpfaq_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('genre', array('post'), $args);
}

В этом коде мы задаём метки для интерфейса администратора и параметры таксономии. Ключевой параметр hierarchical определяет тип таксономии.

Пояснения к параметрам

  • show_ui — отображать ли таксономию в админке.
  • show_admin_column — показывать ли колонку с таксономией в списке записей.
  • query_var — позволяет использовать таксономию в URL-запросах.
  • rewrite — настройки ЧПУ для таксономии.

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

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

$terms = get_the_terms(get_the_ID(), 'genre');
if ($terms && ! is_wp_error($terms)) {
    echo '<ul>';
    foreach ($terms as $term) {
        echo '<li>' . esc_html($term->name) . '</li>';
    }
    echo '</ul>';
}

Этот код выведет список жанров, к которым относится запись. Если нужно вывести ссылки на архивы таксономии:

$terms = get_the_terms(get_the_ID(), 'genre');
if ($terms && ! is_wp_error($terms)) {
    echo '<ul>';
    foreach ($terms as $term) {
        $term_link = get_term_link($term);
        if (!is_wp_error($term_link)) {
            echo '<li><a href="' . esc_url($term_link) . '">' . esc_html($term->name) . '</a></li>';
        }
    }
    echo '</ul>';
}

Пример создания неиерархической таксономии

Если вам нужна таксономия, похожая на метки, создайте её так:

add_action('init', 'wpfaq_register_taxonomy_topic');
function wpfaq_register_taxonomy_topic() {
    $labels = array(
        'name'                       => 'Темы',
        'singular_name'              => 'Тема',
        'search_items'               => 'Поиск тем',
        'popular_items'              => 'Популярные темы',
        'all_items'                  => 'Все темы',
        'edit_item'                  => 'Редактировать тему',
        'update_item'                => 'Обновить тему',
        'add_new_item'               => 'Добавить новую тему',
        'new_item_name'              => 'Название новой темы',
        'separate_items_with_commas' => 'Разделяйте темы запятыми',
        'choose_from_most_used'      => 'Выберите из самых используемых',
        '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' => 'topic'),
    );

    register_taxonomy('topic', 'post', $args);
}

Обратите внимание на 'hierarchical' => false — это значит, что термины не будут иметь вложенности.

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

Если вы создали собственный тип записи (Custom Post Type), например book, вы можете прикрепить к нему таксономии при регистрации:

register_taxonomy('genre', array('book'), $args);

Или добавить таксономию к нескольким типам:

register_taxonomy('genre', array('post', 'book'), $args);

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

Как сделать пользовательские таксономии доступными в REST API

В современных проектах важно, чтобы таксономии были доступны через REST API. Для этого добавьте параметр show_in_rest в настройки таксономии:

$args = array(
    // другие параметры
    'show_in_rest' => true,
);
register_taxonomy('genre', array('post'), $args);

Это позволит вам работать с таксономиями через JavaScript, React-приложения и внешние сервисы.

Оптимизация и лучшие практики при работе с таксономиями

При работе с пользовательскими таксономиями важно соблюдать несколько правил:

  • Используйте уникальные префиксы в названиях функций и таксономий, например, wpfaq_, чтобы избежать конфликтов.
  • Правильно настройте ЧПУ через параметр rewrite для SEO-дружественных URL.
  • Добавляйте поддержку таксономий в шаблоны темы для удобства пользователей.
  • Используйте show_admin_column, чтобы видеть таксономии в списках записей в админке.
  • Если таксономия не нужна в REST API, отключайте параметр show_in_rest.

Пример плагина для создания пользовательской таксономии

Для удобства можно оформить регистрацию таксономии в виде плагина. Создайте файл wpfaq-custom-taxonomy.php в папке wp-content/plugins с таким содержимым:

<?php
/**
 * Plugin Name: WPFAQ Custom Taxonomy
 * Description: Регистрация пользовательской таксономии "Жанры" для постов
 * Version: 1.0
 * Author: WPFAQ
 */

add_action('init', 'wpfaq_register_taxonomy_genre');
function wpfaq_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'),
        'show_in_rest'      => true,
    );

    register_taxonomy('genre', array('post'), $args);
}

Активируйте плагин в админке — и таксономия появится в вашем сайте.

Заключение

Пользовательские таксономии — мощный инструмент для организации контента в WordPress. Они помогают не только структурировать информацию, но и улучшают UX и SEO. Создавайте и настраивайте таксономии под задачи вашего проекта, используя приведённые примеры и лучшие практики.

Если хотите расширить функционал сайта, рекомендуем ознакомиться с плагином Clearfy Pro, который поможет оптимизировать работу таксономий и других аспектов WordPress.

WooCommerce: как исключить товары по атрибутам из корзины
17.04.2026
WordPress: как создать и использовать собственные таксономии
18.01.2026
Удаление неиспользуемых изображений в WordPress для оптимизации сайта
20.12.2025
WooCommerce: решение проблемы с отображением товаров после обновления кеша
06.05.2026
Отложенная загрузка картинок в WordPress: настройка и примеры
26.02.2026