Chapitre 9 sur 20

Comprendre et utiliser les taxonomies

Laisser un commentaire

Le terme est quelque peu méconnu, mais les taxonomies sont au cœur de WordPress. Il s’agit par exemple des catégories et des étiquettes de vos articles, mais aussi de vos produits WooCommerce par exemple. Alors comment les utiliser ?

Étiquettes et catégories

Dans sa plus simple configuration, WordPress requiert que chaque article de blog soit lié à au moins une catégorie “Non classé” par défaut. Les catégories sont, comme leur nom l’indique, une manière de regrouper des éléments traitant d’un même sujet : par exemple tous les articles/produits de sport.

La différence majeure entre les catégories et les étiquettes est que ces dernières n’offrent pas de niveau hiérarchique. Une catégorie peut avoir un parent, pas une étiquette. Cette hiérarchisation prend tout son sens lorsque l’on a beaucoup de contenu à classer, cela permet une classification en entonnoir.

On peut par exemple afficher tous les articles de sport dans la catégorie éponyme, et avoir une sous-catégorie “Golf”, laquelle ne contiendra que les articles de sport traitant spécifiquement du golf.

Les étiquettes, que l’on comprend mieux sous leur nom anglais, les tags, permettent d’attribuer une classification secondaire à un élément. Par exemple, on pourrait avoir une étiquette “Djokovic”, laquelle regroupe tous les articles parlant du tennisman, que ceux-ci soient classés dans la catégorie “Sport” ou “Diet” (Djoko est gluten-free).

Dans le cas d’un e-commerce, il est courant d’utiliser les catégories comme catégorie de produit (tous les articles de sport) et les étiquettes pour une gamme ou une collection (tous les produits de la gamme premium).

Page catégorie de l'ecommerce Laurenz Baumer
Chez Baumer on trouve les produits par catégorie (ex. bague) ou par collection (ex. ici : marriage)

Ainsi, une gamme peut regrouper des produits appartenant à plusieurs catégories. Cela dit, rien ne vous empêche de placer des articles dans différentes catégorie. Un article de blog sur WordPress peut être dans les catégories WordPress et PHP.

Il faut vraiment déterminer la classification qui correspond à votre contenu. J’ai tendance à plus utiliser les étiquettes pour les produits en e-commerce que pour classer des articles de blog. Gardez cependant à l’esprit que vos url refléteront ces classifications.

En effet, vous pouvez personnaliser l’url, par exemple :

Cela ne sera pas possible si vous utilisez les catégories pour tout. L’url reflète ici qu’il s’agit de deux classifications distinctes.

Des taxonomies sur-mesure

Si les étiquettes et les catégories sont regroupées sous le même terme de “taxonomie”, c’est qu’il s’agit en fait d’une seule et même chose. Elles sont stockées de la même manière en base de données.

Une taxonomie a un nom, “étiquette” ou “catégorie”, pour celles par défaut et elle est de type hiérarchique (catégorie) ou non (étiquettes). On peut créer une infinité de taxonomies supplémentaires pour servir nos besoins.

Par exemple, admettons que vous éditiez un site d’actualité musicale. En plus des catégories et étiquettes, vous voudriez une taxonomie “Concerts”, laquelle regrouperait tous les concerts par ville pa exemple.

Vous pourriez vous servir des trois types de taxonomies pour classifier vos contenus :

Vous pouvez créer une nouvelle taxonomie depuis un plugin ou votre functions.php avec la fonction register_taxonomy.

// Enregistrer une nouvelle taxonomie
register_taxonomy('concert', 'post', [
    'labels' => [
        'name' => 'Sport',
        'singular_name'     => 'Concert',
        'plural_name'       => 'Concerts',
        'search_items'      => 'Rechercher des concerts',
        'all_items'         => 'Tous les concerts',
        'edit_item'         => 'Éditer le concert',
        'update_item'       => 'Mettre à jour le concert',
        'add_new_item'      => 'Ajouter un nouveau concert',
        'new_item_name'     => 'Ajouter un nouveau concert',
        'menu_name'         => 'Concert',
    ],
    'show_in_rest' => true,
    'hierarchical' => true,
    'show_admin_column' => true,
]);

Par la suite, vous pouvez facilement récupérer la liste des taxonomies et créer un menu.

<?php $concerts = get_terms(['taxonomy' => 'concert']); ?>

<ul class="concerts">
    <?php foreach($concerts as $concert): ?>
    <li class="nav-item">
        <a href="<?= get_term_link($concert) ?>" class="<?= is_tax('sport', $concert->term_id) ? 'active' : '' ?>"><?= $sport->name ?></a>
    </li>
    <?php endforeach; ?>
</ul>

Différencier les designs

Par ailleurs, grâce aux taxonomies, vous pouvez facilement différencier les templates et présenter des designs différents.

Page catégorie de l'ecommerce Laurenz Baumer
Les catégories ne partagent pas le même design que les collections

Le plus simplement du monde en utilisant la template hierarchy de WordPress, vous créez un template spécifique à un type de taxonomie (taxonomy-concerts.php) ou à une taxonomie particulière (taxonomy-concerts-lyon.php).

La hiérarchie de templates WordPress
Schéma de la hiérarchie des templates WordPress

Cependant, s’il n’y a que de légères différences, utiliser deux fichiers de template séparés peut s’avérer trop extrême. Dans ce cas, on peut utiliser is_tag et is_category, ou encore vérifier que la taxonomie fait partie d’une liste de taxonomie données avec has_term.

Dans le prochain chapitre, nous allons justement voir comment créer des templates de mise en page.

Commentaires

Rejoignez la discussion !

Vous pouvez utiliser Markdown pour les liens [ancre de lien](url), la mise en *italique* et en **gras**. Enfin pour le code, vous pouvez utiliser la syntaxe `inline` et la syntaxe bloc

```
ceci est un bloc
de code
```