Formation « Développer un thème WordPress sur mesure »

Créer des Taxonomies

Lecture : 3 minutes • Pratique : 10 minutes • 2

Pour classer les publications de nos Custom Post Types, on peut créer de nouvelles Taxonomies. Du coup, on n’est pas cantonné aux Catégories et aux étiquettes. Dans ce cours on va apprendre à déclarer des taxonomies et les assigner à nos types de publication.

Les taxonomies permettent de classer vos publications afin que vous internautes puissent filtrer un certain type seulement. Les catégories et étiquettes sont présentes par défaut et rattachées aux articles, mais on va bien sûr voir tout de suite comment créer les nôtres :

Déclarer une taxonomie

Je continue sur l’exemple du Portfolio, dans lequel j’aimerais trier mes créations, par exemple : Photos, Vidéos, Web, 3D, Peinture

C’est un peu des catégories en fait, mais comme cette taxonomie est déjà utilisée pour les articles, je vais en créer une nouvelle que j’appellerai Types de Projets.

Où et comment la Déclarer ?

Pour déclarer une nouvelle taxonomie on utilise la fonction register_taxonomy() que l’on place dans le functions.php, à la suite de la déclaration du Custom Post Type :

PHP
functions.php

On retrouve la même logique que pour les CPT. Étudions les différents paramètres :

Paramètres des taxonomies

Les intitulés

Là aussi, il y a pleins de libellés disponibles mais on pourrait se cantonner seulement au nom. Consultez la documentation pour obtenir toute la liste des intitulés de taxonomie.

Public

Afin que notre taxonomie soit visible publiquement sur le site, on passe cette valeur à true. Il faut également penser à mettre show_in_rest pour la voir apparaitre dans l’éditeur visuel (Gutenberg).

Comportement comme des catégories ou comme des étiquettes ?

C’est le paramètre le plus important. Souhaitez-vous que votre taxonomie soit hiérarchique, comme les catégories, donc plus ou moins prédéfinies à l’avance, où plutôt volatile, comme les étiquettes ?

Les différents comportements des taxonomies dans WordPress : hiérachique ou non
Les catégories sont classées de manière hiérarchiques, alors que les étiquettes ne le sont pas

En ce qui concerne notre exemple, Types de projets, on va choisir hiérarchique : nos thèmes seront prédéfinis à l’avance et ne devraient pas trop bouger.

D’expérience, c’est le mode hiérarchique que l’on choisit dans une grande majorité des cas.

Assigner la taxonomie à un ou plusieurs CPT

Maintenant, il ne nous reste plus qu’à déclarer notre taxonomie grâce à la fonction register_taxonomy(). Le premier paramètre est le slug de la taxonomie, le second celui du CPT et en troisième, les paramètres définis auparavant.

Mais il est également possible de l’assigner à plusieurs types de publication en même temps, même si on le fait rarement :

PHP
functions.php

Afficher les taxonomies dans vos templates

Bien ! Il va falloir quelques termes dans cette taxonomie, et pour cela vous pouvez :

  • Soit les créer via Portfolio > Types de projets ;
  • Soit les créer directement lors de l’édition d’un projet.
Vous pouvez ajouter des termes à votre taxonomie depuis l'interface d'édition d'article
C’est même plus facile de les ajouter d’ici !

On va maintenant afficher notre taxonomie dans le template correspondant, soit dans archive-portfolio.php ou single-portfolio.php :

PHP
archive.php ou single.php

Vous pouvez aussi définir ce qui va apparaitre avant, après, et définir un séparateur (par défaut une virgule). En soit, le but est de n’assigner qu’un type à chaque projet. Voici le résultat :

Affichage de la taxonomie Types de projets dans notre type de publication Portfolio
Les taxonomies s’affichent bien dans notre Custom Post Type

Conseil

Pensez à rafraichir là aussi votre structure des Permaliens afin d’éviter toute erreur 404 !

Les taxonomies au service du tri / filtrage

Si vous utilisez une extension comme FacetWP pour filtrer et trier vos publications de manière avancée, alors les taxonomies s’avéreront être des alliées puissantes !

FacetWP permet de créer un système de tri puissant grâce à vos taxonomies
FacetWP s’appuie grandement sur les taxonomies de vos publications !

Mais si vous n’utilisez pas ce genre de système, essayez de ne pas trop créer trop de taxonomies : restez seulement sur celles strictement nécessaires.


Si vous êtes un maniaque du rangement, vous saurez apprécier les possibilités offertes par ces taxonomies !

2

Questions, réponses et commentaires

  1. Fuchs Alexandre

    Le 14 juin 2019

    Bonjour,
    Merci pour votre tutoriel !
    J’ai un site internet avec des concepts (promenades, activité en soirée, etc) répartis entre différentes villes.
    Est ce qu’un taxonomie « Concept » (principale) et une taxonomie « Ville » suffisent ou il faut nécessairement créer un CustomPostType ?
    Sachant que la structure sera :
    Page Accueil > Concept > Ville > Articles (les articles en fonction du concept et de la ville)

    Merci beaucoup !

    1. Maxime BJ

      Le 14 juin 2019

      Selon moi il faut un Type de publication oui. CPTs : les pages, les articles et les concepts. Et ville serait une taxo de concepts en effet. Sinon tu vas retrouver tes concepts dans les mêmes listing que les actualités du blog. Après ça dépend si tu cherches bien à les distinguer ou pas.

Laisser un commentaire