Настройка таксономии и словарей (Taxonomy) Drupal
Таксономия Drupal — механизм классификации контента. Словари (Vocabulary) — это категории классификаторов (Жанр, Тег, Регион), термины (Term) — конкретные значения внутри словаря (Фантастика, Москва).
Создание словаря
Структура → Таксономия → Добавить словарь. Название, описание, машинное имя (machine name) — используется в коде и URL.
Или через Drush:
drush php-eval "
\$vocab = \Drupal\taxonomy\Entity\Vocabulary::create([
'vid' => 'product_category',
'name' => 'Категория товаров',
]);
\$vocab->save();
"
Добавление поля таксономии к типу контента
Структура → Типы контента → [тип] → Управление полями → Добавить поле → Ссылка на таксономический термин.
Настройки поля:
- Словарь: выбрать созданный
- Количество значений: 1 (одна категория) или Неограничено (теги)
- Виджет: Автодополнение (для тегов) или Список выбора (для категорий)
Иерархическая таксономия
Термины могут иметь родителей — строится дерево. Пример: Одежда → Мужская одежда → Футболки.
use Drupal\taxonomy\Entity\Term;
// Создание термина с родителем
$parent = Term::create([
'vid' => 'product_category',
'name' => 'Одежда',
]);
$parent->save();
$child = Term::create([
'vid' => 'product_category',
'name' => 'Мужская одежда',
'parent' => $parent->id(),
]);
$child->save();
Views для страниц категорий
Views → Добавить вид → тип содержимого, фильтр по полю таксономии. Для автоматических страниц терминов — включить Views Taxonomy Term в конфигурации вида.
// Программный запрос нод по термину таксономии
$query = \Drupal::entityQuery('node')
->condition('type', 'product')
->condition('field_category.entity.tid', $term_id)
->condition('status', 1)
->sort('created', 'DESC')
->accessCheck(TRUE)
->pager(20);
$nids = $query->execute();
$nodes = Node::loadMultiple($nids);
URL алиасы для терминов
Патчмодуль Pathauto автоматически генерирует URL: /catalog/[term:name]. Настройка: Конфигурация → Search and metadata → URL aliases → Pathauto → шаблоны для таксономии.
Сроки
Создание словарей, добавление полей к типам контента, настройка Views для страниц категорий — 3–5 часов.







