Aller au contenu

Vocabulaires de taxonomie

La taxonomie est le système de classification de Drupal. Elle permet d’organiser le contenu en catégories, tags, ou tout autre type de regroupement.

Taxonomie
├── Vocabulaire (= type de classification)
│ ├── Terme 1
│ ├── Terme 2
│ │ ├── Sous-terme 2.1
│ │ └── Sous-terme 2.2
│ └── Terme 3
└── Autre vocabulaire
├── Terme A
└── Terme B
ConceptDescriptionExemple
VocabulaireUn type de classification”Catégories”
TermeUn élément dans le vocabulaire”Mode”, “Sport”

Les termes peuvent être hiérarchiques (parent/enfant) :

Vêtements
├── Hommes
│ ├── T-shirts
│ ├── Pantalons
│ └── Vestes
└── Femmes
├── Robes
├── Jupes
└── Blouses
  1. Naviguez vers StructureTaxonomy
  2. Cliquez sur Add vocabulary
  1. Cliquez sur Save

Répétez le processus :

ChampValeur
NameMarque
DescriptionMarques disponibles
Machine namebrands
ChampValeur
NameTaille
DescriptionTailles disponibles (S, M, L, XL...)
Machine namesizes
ChampValeur
NameCouleur
DescriptionCouleurs des produits
Machine namecolors

Ce vocabulaire nécessite un champ supplémentaire pour le code couleur. Nous l’ajouterons après.

ChampValeur
NameCatégorie Blog
DescriptionClassification des articles de blog
Machine nameblog_categories

Certains vocabulaires nécessitent des champs supplémentaires.

Champ “Code couleur” pour le vocabulaire Couleur

Section intitulée « Champ “Code couleur” pour le vocabulaire Couleur »
  1. Allez dans StructureTaxonomy
  2. Cliquez sur Manage fields à côté de “Couleur”
  3. Cliquez sur Create a new field
  1. Sauvegardez

Champ “Image” pour le vocabulaire Marque (optionnel)

Section intitulée « Champ “Image” pour le vocabulaire Marque (optionnel) »

Si vous souhaitez afficher les logos des marques :

  1. Manage fields sur le vocabulaire “Marque”
  2. Create a new fieldImage
ParamètreValeur
LabelLogo
Machine namefield_brand_logo
RequiredNo
Allowed file extensionspng jpg svg
File directorybrands
Alt textRequired

À ce stade, vous devriez avoir 5 vocabulaires :

Fenêtre de terminal
# Via Drush
drush ev "foreach(\Drupal::entityTypeManager()->getStorage('taxonomy_vocabulary')->loadMultiple() as \$v) { echo \$v->id() . ' - ' . \$v->label() . PHP_EOL; }"

Résultat attendu :

blog_categories - Catégorie Blog
brands - Marque
colors - Couleur
product_categories - Catégorie Produit
sizes - Taille

Utilisez l’interface d’administration comme décrit ci-dessus.

📋 Exemple illustratif : Créer une taxonomie “Saison”

Section intitulée « 📋 Exemple illustratif : Créer une taxonomie “Saison” »

Pour illustrer la création via Drush, voici comment créer une taxonomie “Saison” :

Fenêtre de terminal
# Créer le vocabulaire "Saison"
drush php-eval "
\$vocab = \Drupal\taxonomy\Entity\Vocabulary::create([
'vid' => 'season',
'name' => 'Saison',
'description' => 'Saisons des collections',
]);
\$vocab->save();
echo 'Vocabulaire \"Saison\" créé avec succès !' . PHP_EOL;
"
# Créer les termes de la taxonomie
drush php-eval "
use Drupal\taxonomy\Entity\Term;
\$terms = [
['vid' => 'season', 'name' => 'Printemps-Été 2025'],
['vid' => 'season', 'name' => 'Automne-Hiver 2024'],
['vid' => 'season', 'name' => 'Collection Capsule'],
];
foreach (\$terms as \$data) {
\$term = Term::create(\$data);
\$term->save();
echo 'Terme créé: ' . \$term->label() . PHP_EOL;
}
"
# Vérifier la création
drush taxonomy:vocabulary-list | grep season
drush taxonomy:term-list season

Après avoir créé tous les vocabulaires :

Fenêtre de terminal
# Exporter
drush cex -y
# Vérifier les fichiers créés
ls -la config/sync/taxonomy.vocabulary.*.yml

Fichiers générés :

  • taxonomy.vocabulary.product_categories.yml
  • taxonomy.vocabulary.brands.yml
  • taxonomy.vocabulary.sizes.yml
  • taxonomy.vocabulary.colors.yml
  • taxonomy.vocabulary.blog_categories.yml

Exemple de taxonomy.vocabulary.product_categories.yml :

langcode: fr
status: true
dependencies: { }
name: 'Catégorie Produit'
vid: product_categories
description: 'Classification des produits'
weight: 0

Avant de passer à la suite, vérifiez :

  • 5 vocabulaires créés
  • Champ field_color_code ajouté au vocabulaire Couleur
  • (Optionnel) Champ field_brand_logo ajouté au vocabulaire Marque
  • Configuration exportée

Maintenant que les vocabulaires sont créés, passons à l’ajout des Termes de taxonomie.