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)