Skip to content

Taxonomies avec Extended CPT ​

Le T32B utilise la librairie Extended CPTs pour déclarer et configurer les taxonomies (catégories, types, thématiques, etc.) de manière plus lisible et maintenable que les fonctions natives WordPress.

📘 Documentation : https://github.com/johnbillion/extended-cpts/wiki

Pourquoi Extended CPTs ? ​

Extended CPTs permet notamment de :

  • Déclarer les taxonomies avec une configuration claire et expressive
  • Associer facilement une taxonomy à un ou plusieurs post types
  • Activer la compatibilité Gutenberg / REST API via show_in_rest
  • Améliorer l’administration (meta box, filtres, tri, etc.)
  • Versionner et centraliser la configuration dans le code

Organisation ​

Dans le T32B, on déclare 1 taxonomy par fichier. Chaque fichier retourne l’appel à register_extended_taxonomy(...).

Les fichiers doivent être mis dans le dossier app/Configurations/Taxonomies

Création via la ligne de commande ​

La création d’une nouvelle taxonomy se fait via la ligne de commande :

bash
wp acorn t32b:taxonomy EventType

Cette commande génère :

  • un fichier de déclaration dans Configurations/Taxonomies
  • un squelette de configuration Extended CPT
  • une structure conforme aux conventions du projet

Exemple ​

php
return register_extended_taxonomy('custom-cpt_type', 'custom-cpt', [
    'show_in_rest' => true,
    'hierarchical' => true,
    'has_archive' => false,
    'meta_box' => 'simple',

    // Filtres dans la liste d’admin (si applicable)
    'admin_filters' => [
        'event_type' => [
            'title' => 'Event Type',
        ],
    ],

    // Permet de trier les termes (ordre manuel)
    'sort' => true,
], [
    'singular' => 'Event Type',
    'plural' => 'Event Types',
]);

Bonnes pratiques ​

  • 1 taxonomy = 1 fichier
  • Nom (slug) stable et explicite (event_type, project_category, etc.)
  • Associer clairement la taxonomy au(x) post type(s)
  • Activer show_in_rest si elle est utilisée dans Gutenberg / REST API
  • Utiliser hierarchical selon le besoin (tags vs catégories)
  • Éviter toute logique métier dans ces fichiers (configuration uniquement)