Aller au contenu principal
Version: 26.0.8.7

Taxonomies

Les taxonomies dans WordPress permettent d'organiser vos types de contenu personnalisés. Cette documentation explique comment créer et gérer des taxonomies de manière efficace.

Création d'une taxonomie

Pour créer une taxonomie, utilisez la méthode addTaxonomy dans votre classe de post type. Il est recommandé de définir chaque taxonomie dans une méthode séparée pour une meilleure organisation.

app/PostTypes/Recipe.php
public function setupRecipeCategories()
{
    $this->addTaxonomy('recipe_category', 'Catégories de recettes')
        ->isFemale()
        ->setLabels([
            'plural' => 'catégories',
            'singular' => 'catégorie',
        ])
        ->register();
}

Paramètres de la taxonomie

Identifiants

  • slug string - Identifiant unique de la taxonomie (en minuscules, sans espaces ni caractères spéciaux)
  • menuName string - Nom affiché dans l'administration

Personnalisation

Genre des libellés

  • ->isFemale() - Pour les noms féminins (par défaut)
  • ->isMale() - Pour les noms masculins

Personnalisation des libellés

->setLabels([
    'plural' => 'ingrédients',    // Nom au pluriel
    'singular' => 'ingrédient',   // Nom au singulier
])

Utilisation des taxonomies

Récupération des termes

Tous les termes d'une taxonomie

{% for term in post.get_terms('recipe_category') %}
    <span class="tag">{{ term.name }}</span>
{% endfor %}

Bonnes pratiques

  • Nommage : Utilisez des préfixes pour éviter les conflits (ex: recipe_ pour une taxonomie de recettes)

Exemple complet

Rappel

Les méthodes public dans une classe de post type sont appelées automatiquement lors de l'initialisation du post type. Il n'est donc pas nécessaire de les appeler manuellement.

class Recipe extends PostType
{
    public function __construct()
    {
        // Code du constructeur...
    }

    public function setupRecipeCategories()
    {
        $this->addTaxonomy('recipe_category', 'Catégories de recettes')
            ->isFemale()
            ->setLabels([
                'plural' => 'catégories',
                'singular' => 'catégorie',
            ])
            ->register();
    }

    public function setupRecipeTags()
    {
        $this->addTaxonomy('recipe_tag', 'Étiquettes')
            ->isFemale()
            ->register();
    }
}