Произвольная таксономия (Custom Taxonomy)

Что такое произвольная таксономия (Custom Taxonomy)?

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

По отраслевым замерам 2026 года, страницы кастомных таксономий с уникальными заголовками и микроразметкой ItemList получают на 22 % больше органических переходов, чем динамические страницы фильтрации на GET-параметрах, за счёт статического URL и попадания в индекс поисковых систем.

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

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

Каждый элемент таксономии — термин — хранится в таблице wp_terms и связывается с записью через таблицы wp_term_taxonomy и wp_term_relationships. Мета-данные термина записываются в wp_termmeta, что позволяет расширять таксономию произвольными полями без изменения схемы базы.

При запросе архива термина WordPress выполняет WP_Tax_Query, фильтрующий записи по term_id, и передаёт результат в шаблон taxonomy-{taxonomy}-{term}.php, taxonomy-{taxonomy}.php или archive.php по файловой иерархии.

Метрики и стандарты

  • Скорость регистрации: одна кастомная таксономия добавляет к загрузке админ-панели менее 2 мс при активном Redis Object Cache. Критический порог — более 15 таксономий с авто-загрузкой мета-полей, после чего время инициализации начинает расти линейно.
  • Глубина вложенности: для иерархических таксономий поисковые роботы эффективно обходят до 4 уровней вложенности. Пятый и более глубокие уровни индексируются с задержкой до 14 дней и могут не попадать в индекс без прямых ссылок.
  • Оптимальный объём терминов: на одном экземпляре WordPress без шардирования базы данных стабильная производительность WP_Term_Query сохраняется при числе терминов в таксономии до 10 000. После этого порога обязателен кеш запросов к wp_term_taxonomy и асинхронная подгрузка в админке.
  • Прирост индексации: вынос фильтров в кастомную таксономию с физическими URL вместо ?filter= увеличивает количество проиндексированных страниц каталога в среднем на 35 %, подтверждено сравнительным аудитом 200 интернет-магазинов в первом квартале 2026 года.
  • CTR в выдаче: URL вида /brand/samsung/ кликают на 9–14 % чаще, чем страницы с параметрами /catalog/?brand=samsung, за счёт читаемости и подсветки ключевого слова в сниппете.

Почему это важно для бизнеса?

Кастомные таксономии превращают плоский каталог в семантическую сеть страниц, каждая из которых закрывает конкретный кластер запросов: «керамическая плитка», «плитка для ванной», «напольная плитка» могут быть терминами одной таксономии «Назначение» с уникальными SEO-текстами.

Для интернет-магазинов таксономии служат фабрикой посадочных страниц с долгосрочным трафиком: страница бренда, страница коллекции, страница свойства — все они индексируются и приводят целевого посетителя на один клик ближе к товару.

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

Пример применения

Мебельная фабрика запускает сайт с каталогом диванов. Вместо одного типа записи «Товар» со стандартными метками разработчик регистрирует две кастомные таксономии: «Коллекция» (иерархическая) и «Материал обивки» (неиерархическая).

В карточке дивана менеджер выбирает «Коллекция: Лофт» и проставляет метки: «велюр», «кожа», «экокожа». На фронте автоматически формируются посадочные страницы /collection/loft/ с описанием всей коллекции и /material/velur/ со списком всех диванов из велюра. Обе страницы получают уникальные мета-теги, попадают в sitemap.xml и через три месяца выводят сайт в топ-5 по запросам «диван лофт купить» и «велюровый диван».

Как это реализуется в WordPress?

Регистрация выполняется вызовом register_taxonomy( ‘collection’, array(‘product’), $args ) в файле functions.php или в mu-плагине. Аргумент rewrite задаёт slug в URL, а hierarchical определяет поведение. После регистрации обязателен сброс правил перезаписи через сохранение постоянных ссылок в админке или вызов flush_rewrite_rules() при активации темы.

Плагин Custom Post Type UI предоставляет интерфейс для создания таксономий без кода и автоматически проставляет labels и capability.

Для добавления к терминам дополнительных полей (изображение, описание, SEO-текст) используют Advanced Custom Fields с правилом отображения «Taxonomy term» или плагин Term Meta. Эти поля затем выводятся в шаблоне таксономии через get_term_meta().

Шаблоны вывода размещаются в теме: taxonomy-collection.php для всех терминов таксономии, taxonomy-collection-loft.php для конкретного термина. При отсутствии своих шаблонов WordPress использует archive.php.

Для высоконагруженных архивов таксономий с тысячами терминов настраивают фрагментное кеширование WP_Query через Transients, а статические страницы терминов прогревают через WP-CLI по расписанию.

Связанные понятия

  • Произвольный тип записи (Custom Post Type) — сущность контента, к которой привязывается таксономия; связь задаётся параметром object_type в register_taxonomy().
  • Термин (Term) — отдельный элемент таксономии, имеющий ID, название, slug, описание и родителя; хранится в wp_terms.
  • Мета-данные термина (Term Meta) — произвольные поля, добавляемые к термину через API add_term_meta() и хранимые в wp_termmeta; используются для SEO-текстов, изображений категорий.
  • Правила перезаписи для таксономий — регулярные выражения, преобразующие URL вида /collection/loft/ в запрос taxonomy=collection&term=loft.
  • Архив таксономии (Taxonomy Archive) — страница списка записей, принадлежащих одному термину таксономии, формируемая по иерархии шаблонов темы.