ворд-пресс.рф
Разработка

Таксономии WordPress для CPT: категории, теги и архивы

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

Когда у сайта есть CPT «Проекты», а пользователю нужен фильтр по направлениям, чаще всего правильная модель — таксономия с терминами, а не текстовое поле project_category. Таксономия предоставляет связь «многие ко многим» и стандартные инструменты выборки WordPress.

Разница между CPT и таксономией

  • CPT определяет тип сущности: проект, отзыв, событие.
  • Таксономия определяет классификацию: отрасль, тип проекта, регион.
  • Метаполе хранит свойство одной записи: цена, дата, внешний ID.

Пример регистрации

Ниже предполагается, что CPT case_study уже зарегистрирован отдельным плагином. Код помещают в тот же плагин на хуке init.

<?php
add_action( 'init', function () {
    register_taxonomy( 'case_sector', array( 'case_study' ), array(
        'labels' => array(
            'name'          => 'Отрасли',
            'singular_name' => 'Отрасль',
        ),
        'public'            => true,
        'show_ui'           => true,
        'show_in_rest'      => true,
        'hierarchical'      => true,
        'rewrite'           => array( 'slug' => 'case-sector' ),
    ) );
} );

Идентификатор таксономии должен быть уникальным: перед внедрением проверьте, что такой taxonomy slug не используется другим компонентом. Если CPT не поддерживает REST, настройте и его отдельно.

SEO-решения для архивов

Термины могут создавать самостоятельные архивы. Но это не означает, что каждый архив нужно индексировать. Для малочисленных или дублирующих подборок подумайте о noindex или отказе от отдельной посадочной страницы. Canonical и индексируемость оцениваются на уровне реального содержимого.

Проверки после установки

  1. Пересохраните постоянные ссылки в настройках WordPress на staging.
  2. Создайте несколько терминов и присвойте их тестовым кейсам.
  3. Проверьте архив термина, хлебные крошки и корректный canonical.
  4. Убедитесь, что REST API показывает термины только там, где это предусмотрено.
  5. Проверьте, что при удалении термина данные самих кейсов сохраняются.

При большом количестве атрибутов решите заранее, какие из них должны быть таксономиями, а какие — метаданными. Иначе фильтры и SEO-архивы быстро станут неуправляемыми.

Источник: https://developer.wordpress.org/reference/functions/register_taxonomy/

Материал был полезен?

Помогите нам сделать материалы точнее и понятнее.