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

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

Что такое таксономия в WordPress и зачем создавать свою

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

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

  • Группировать записи по уникальным признакам;
  • Добавлять иерархическую структуру (например, жанры, поджанры);
  • Фильтровать контент для пользователей и в админке;
  • Улучшать SEO-за счёт более точной организации контента.

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

Регистрация собственной таксономии: базовый пример

Для регистрации таксономии используется функция register_taxonomy. Обычно её вызывают в хуке init. Рассмотрим пример создания таксономии «Жанры» для кастомного типа записей «Книги».

function wordpressa_register_taxonomy_genres() {
    $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', 'book', $args);
}
add_action('init', 'wordpressa_register_taxonomy_genres');

Здесь:

  • hierarchical = true — таксономия ведёт себя как категории, с иерархией;
  • 'genre' — имя таксономии;
  • 'book' — тип записи, к которому привязывается таксономия;
  • Настраиваем метки для удобства в админке.

Если у вас нет кастомного типа записей «book», его нужно зарегистрировать отдельно.

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

Чтобы таксономия работала, нужно иметь соответствующий тип записей. Вот пример регистрации типа «Книги».

function wordpressa_register_post_type_book() {
    $labels = array(
        'name'               => 'Книги',
        'singular_name'      => 'Книга',
        'menu_name'          => 'Книги',
        'name_admin_bar'     => 'Книга',
        'add_new'            => 'Добавить новую',
        'add_new_item'       => 'Добавить новую книгу',
        'new_item'           => 'Новая книга',
        'edit_item'          => 'Редактировать книгу',
        'view_item'          => 'Просмотреть книгу',
        'all_items'          => 'Все книги',
        'search_items'       => 'Поиск книг',
        'parent_item_colon'  => 'Родительская книга:',
        'not_found'          => 'Книги не найдены.',
        'not_found_in_trash' => 'В корзине книги не найдены.',
    );

    $args = array(
        'labels'             => $labels,
        'public'             => true,
        'publicly_queryable' => true,
        'show_ui'            => true,
        'show_in_menu'       => true,
        'query_var'          => true,
        'rewrite'            => array('slug' => 'book'),
        'capability_type'    => 'post',
        'has_archive'        => true,
        'hierarchical'       => false,
        'menu_position'      => 5,
        'supports'           => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments'),
    );

    register_post_type('book', $args);
}
add_action('init', 'wordpressa_register_post_type_book');

Этот код создаёт удобный тип записей с базовыми возможностями. Теперь вы можете связывать записи «Книги» с жанрами.

Отображение пользовательской таксономии в шаблоне

Чтобы вывести список жанров, связанных с записью, в шаблоне single-book.php, используйте функцию get_the_terms().

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

Это создаст список с ссылками на архивы жанров.

Вывод записей по таксономии на странице архива

Архив таксономии автоматически доступен по адресу /genre/slug-zhana/. Чтобы настроить вывод на странице архива, создайте файл taxonomy-genre.php в папке темы.

Пример базового цикла вывода записей:

<?php if (have_posts()) : ?>
    <h1>Архив жанра: <?php single_term_title(); ?></h1>
    <ul>
    <?php while (have_posts()) : the_post(); ?>
        <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
    <?php endwhile; ?>
    </ul>
<?php else : ?>
    <p>Записи не найдены.</p>
<?php endif; ?>

Расширенные настройки и интеграция с плагинами

Вы можете добавить поддержку таксономии в админ-фильтры, настроить REST API для работы с Gutenberg и внешними приложениями. Для этого при регистрации таксономии установите дополнительные параметры:

  • 'show_in_rest' => true — для REST API;
  • 'meta_box_cb' => 'post_categories_meta_box' — для стандартного вида метабокса;
  • 'show_admin_column' => true — чтобы отображать колонку в списке записей.

Если вы используете плагин Clearfy Pro от WPSHOP, он помогает оптимизировать работу с таксономиями и отключать лишние таксономии для ускорения сайта.

Создание кастомной таксономии с помощью плагина

Если не хочется писать код вручную, можно использовать плагины, например Custom Post Type UI. Но ручной код даёт больше контроля и не нагружает сайт.

Итоги и рекомендации по созданию таксономий

Создание собственной таксономии — мощный инструмент для уникальной структуры контента. Вот что важно учитывать:

  • Регистрируйте таксономии в хуке init;
  • Используйте понятные имена и слаги для URL;
  • Обязательно создайте или выберите тип записей, к которому привязывается таксономия;
  • Настройте отображение в шаблонах и админке;
  • Добавьте поддержку REST API для современных редакторов и интеграций;
  • Оптимизируйте таксономии, отключая ненужные через плагины как Clearfy Pro.

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

Как удалить неиспользуемые метаданные в WordPress для ускорения сайта
12.12.2025
Как добавить кастомные области виджетов в тему WordPress
26.01.2026
Как создать автозадачу в WordPress без использования WP-Cron
04.04.2026
Как использовать хуки для изменения вывода корзины WooCommerce
20.05.2026
Как правильно настроить автообновление плагинов без ошибок
05.12.2025