Налаштування таксономії та словників Drupal
Таксономія Drupal — механізм класифікації контенту. Словники — це категорії класифікаторів (Жанр, Тег, Регіон), терміни — конкретні значення всередину словника (Фантастика, Москва).
Створення словника
Структура → Таксономія → Додати словник. Назва, опис, машинне імя — використовується в коді та 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 годин.







