Utiliser les catégories pour gérer les tags sous WordPress

Incroyable mais vrai : WordPress ne gère pas les tags ! Ces petites étiquettes qui donnent du sens au contenu généré par les utilisateurs, sont dans tous les services estampillés « Web 2.0″… sauf dans WordPress. Les utilisateurs râlent depuis longtemps : c’est qu’ils les demandent, ces tags ! Et avec insistance ! Ils devaient être intégrés dans la prochaine version (la v.2.2 à paraître ces jours-ci) et ne le seront que dans la version 2.3. Les plus impatients ont déjà migré sur d’autres plates-formes…

Mais au fait, a-t-on vraiment besoin des tags dans WordPress ?

Non, car ce moteur de blog propose les catégories pour les gérer. Certains vont tout de suite me dire qu’il y a une grosse différence entre les deux et qu’il faut donc les deux. C’est vrai, il y a une telle différence que j’utilise les deux dans ce blog… en m’appuyant seulement sur les catégories.

Gérer les catégories comme un arbre sémantique

L’astuce consiste à utiliser la hiérarchie des catégories comme un arbre sémantique. Ensuite, il suffit de placer certains de ses nœuds dans l’interface. Pour illustrer le principe, je vais prendre l’exemple de ce blog qui utilise à la fois des thèmes et des tags.

Étape 1 : créer les racines

Pour commencer, je crée les catégories qui me serviront de racines :

  • Thèmes
    Pour gérer une classification hiérarchique.
  • Mots-clés
    Pour gérer les tags.

WordPress m’indique les identifiants des deux racines : 3 pour Thèmes et 4 pour Mot-clés. Ces identifiants sont importants pour placer les racines dans l’interface. Leur valeur dépend bien sûr de votre propre installation de WordPress. Mais n’allons pas trop vite…

Étape 2 : créer les thèmes

Mes thèmes sont hiérarchiques. Je crée donc les thèmes principaux (Concevoir, Développer, Exploiter, Imaginer, Savoir) en les plaçant sous la catégorie Thèmes. Puis, viennent les thèmes secondaires placés chacun sous un thème principal. Rien de très compliqué, c’est du WordPress basique !

Thèmes sous WordPress
La liste de mes thèmes dans l’interface de WordPress.

Étape 3 : afficher les thèmes

Maintenant, il faut mettre les mains dans le cambouis. Je vais modifier le thème WordPress de mon blog pour afficher mes thèmes dans la partie latérale de mon blog. Par défaut, WordPress gère la navigation par catégories dans un fichier nommé sidebar.php. J’y ajoute le code suivant :

<ul>
 <?php
 wp_list_categories('title_li=&orderby=name&show_count=0&use_desc_for_title=1&child_of=3');
 ?>
</ul>

wp_list_categories est une fonction standard de WordPress pour afficher la liste des catégories. Grâce à ses options, je vais pouvoir placer la racine de mon arbre sémantique :

  • title_li=
    Indique que je ne souhaite pas afficher de titre avant la liste.
  • orderby=name
    Ordonne les catégories par nom.
  • use_desc_for_title=1
    Affiche les catégories sous leur catégorie mère.
  • child_of=3
    Limite la liste aux catégories appartenant à la catégorie 3 (donc Thèmes).

Étape 4 : créer les mots-clés

Les mots-clés sont créés sur le même principe. Je les saisie donc dans le gestionnaire de catégories de WordPress, sous la catégorie Mots-clés.

Mots-clés sous WordPress
La liste de mes mots-clés dans l’interface de WordPress.

Étape 5 : afficher les mots-clés… dans un joli tag cloud

Pour afficher les mots-clés, j’aurais pu me simplifier la vie en reprenant le même principe que pour les thèmes. Dans ce cas, le code suivant suffit :

<ul>
 <?php
 wp_list_categories('title_li=&orderby=name&show_count=0&hierarchical=0&child_of=4');
 ?>
</ul>

Mais présenter les mots-clés sous forme d’un tag cloud est quand-même plus « tendance ». Un tag cloud met en valeur les mots-clés (tags) les plus utilisés. Pour cela, inutile de réinventer la roue, j’utilise une extension WordPress très simple et efficace : Category Tagging.

Une fois installée et activée, je n’ai plus qu’à générer le tag cloud dans l’interface :

<ul>
 <?php
 // Affichage du tag cloud (via plugin Category Tagging)
 if (function_exists ('cattag_tagcloud') ) {
 echo cattag_tagcloud(1,5,1,'NAME_ASC','1,2,3,4,5,6,7,8,9','','<li><a rel="tag" href="%link%" title="%description%" class="tag-cloud-%size%">%title%</a></li>','Aucun mot-clé trouvé');
 }

 // Affichage simple
 else {
 wp_list_categories('title_li=&orderby=name&show_count=0&hierarchical=0&child_of=4');
 }
 ?>
</ul>

A chacun de spécifier ses paramètres (voir le détail sur le site de Category Tagging). Le plus important est sans doute le 5e paramètre qui exclut des catégories. Je l’utilise ici pour ne pas afficher les catégories racines (Thèmes et Mots-clés), ainsi que les thèmes de premier niveau qui sont déjà dans l’interface.

Reste à définir les styles CSS pour afficher les mots-clés en fonction de leur utilisation. Pour moi, c’est le code suivant :

a.tag-cloud-1 {
	font-size:1em;
	color:#9B907F;
}
a.tag-cloud-2 {
	font-size:1.2em;
	color:#7C6E59;
}
a.tag-cloud-3 {
	font-size:1.4em;
	color:#7C6E59;
}
a.tag-cloud-4 {
	font-size:1.6em;
	color:#666;
}
a.tag-cloud-5 {
	font-size:1.8em;
	color:#444;
}

Inconvénients

Comme toute astuce, la solution n’est pas idéale. Il y a aussi des inconvénients :

  • L’ajout d’un tag n’est pas possible pendant la saisie d’un article. En effet, WordPress propose l’ajout de catégorie pendant la rédaction, mais il semble impossible d’ajouter une sous-catégorie. Si quelqu’un connait le truc, je suis preneur !
  • Il faut modifier le code du thème WordPress pour gérer la liste des catégories à ne pas afficher dans le tag cloud. C’est le cas quand j’ajoute ou supprime un thème principal… ce qui est très rare.

Avantages

La solution n’est peut-être pas idéale, mais c’est un bon compromis :

  • On se passe d’un gestionnaire de tags. WordPress s’en trouve plus léger et plus stable.
  • Au niveau des articles, je peux afficher les thèmes et les mots-clés dans la même liste pour proposer un choix plus large aux lecteurs.
  • Si un mot-clé prend de l’importance, je peux le placer dans les thèmes sans toucher aux articles, ni aux outils de navigation. Pour faire la même chose avec un système de tags indépendant, il faut modifier chaque article….

Mise à jour. Thomas VdB voit deux autres avantages essentiels à utiliser les catégories comme arbre sémantique :

  • Les doublons disparaissent (comme Sémantique, sémantique et semantique qui sont habituellement considérés comme trois tags différents).
  • Le référencement est optimisé car l’adresse d’une page d’un tag décrit son contenu et facilite son indexation.

Commentaires

Thomas VdB

Je cherche à tagger de façon multiple certains de mes articles sur ma plateforme wordpress (utilisée en local), chaque article pouvant être indexé selon un mode thématique, de mots clés, mais pas seulement, j’ai également 2 autres typologies !

Si la distcintion catégorie / mot clé était utile, elle était insuffisante ! Sachant que d’un point de vue sémantique, le fait de toujours pouvoir re créer un tag un peu différent me gênait car des expressions très similaires (ex : plugin / plugins) pouvaient se retrouver distinctes dans le tag cloud. Une liste une peu figée est donc tout à fait appropriée (pour moi en tout cas) !

Du coup je cherchais à pouvoir catégoriser mes tags (par typologie), plutôt que d’avoir un énorme nuage avec tous ces mots en vrac. Tout gérer en catégories et faire de chacune des typologies une catégorie mère est donc une très bonne idée !!!!

Peut-être est-il mm possible de gérer le nuage multiple pour chacune de ces typologie du coup, à voir en fonction du plugin category tagging

Dernier avantage, je trouve que
/index.php?tag= »blabla »,
c’est moins parlant que
/category/mots-cles/blabla/

Ce qui rend trivial et inutile un plug-in supplémentaire de « related post », puisqu’il suffit de sortir la liste des articles d’une catégorie donnée !

Et puis que Technorati considère les catégories wordpress comme des tags, leur choisir un nom plein de sens est un souci de moins au moment de la mise en ligne !

14 mai 2007, 21h42 · Répondre

Christophe

Merci pour ce commentaire qui apporte des cas d’utilisation et me donne quelques idées (notamment pour la rédaction d’un article « anti-tag » !).

La saine gestion des tags est effectivement un avantage que j’aurais pu ajouter. C’est d’ailleurs la première raison qui m’a fait abandonner les extensions de tagging.

Les adresses « lisibles » sont un autre avantage pour le référencement. Ce blog est d’ailleurs très bien positionné dans Google sans aucune action de promotion. Ce résultat ne vient que de la structure du code XHTML et des liens explicites entre pages.

Quant aux nuages de tags, chaque racine peut avoir le sien. Je n’ai pas fait le test mais je ne vois rien qui s’y oppose, sauf une limitation de Category Tagging. Dans ce cas, un petit développement sur mesure résout le problème.

14 mai 2007, 22h29 · Répondre

Thomas VdB

La plupart des gens publient des posts souvent relatifs à des sujets qui ne changent pas tous les 4 matins (d’où des tag clouds afreux avec 4 mots en énorme, par exemple : Design, Web2.0, WordPress, Plugin) et puis tout le reste en beaucoup plus petit, ce qui signifie
1/ Qu’ils ont mal paramétré la gestion de la pondération des tailles de police
2/ Qu’avec 4 catégories, ils n’auraient pas besoin de tags ou pourraient les utliser à autre chose.

Personnellement, j’ai comme typologies (au moins):
– thématique
– notions abordées (les fameux « mots clés »)
– influence (liste d’auteurs ou de courants de pensée)
– statut (chaque article est une base de travail et passe donc par plusieurs états de validation)

Je ne veux pas que tout soit mélangé dans un nuage de mots clés.

D’ailleurs, une question relative au thème de cette page :
«  » Mots-clés
Développer, HTML, Outils du développeur, Bonnes pratiques, Gestion de contenu, Web sémantique, Blogs, Développement web, Programmation avancée, XHTML, Open source, Web 2.0, WordPress «  »

Je pense qu’il doit être possible de dinstinguer dans le résumé de l’article les catégories mères, non ? Pour obtenir par exemple :
«  » Thèmes :
Développement Web

Mots-clés
Développer, HTML, Outils du développeur, Bonnes pratiques, Gestion de contenu, Web sémantique, Blogs, Développement web, Programmation avancée, XHTML, Open source, Web 2.0, WordPress «  »

Dans mon cas, dans la petite colonne de gauche (les meta données du post), je veux pouvoir afficher :
« Vous lisez actuellement » : %nom du post
« Associé à la thématique » : %1thématique
« Avec les mots clés » : %2mots clés
« Cette fiche traite des interactions de » : %3influence
« Actuellement, cette fiche est: » %4statut.

Et quitte à faire, on peut alors proposer :
« Derniers articles sur la même thématique »
(related post permet de choisir le nombre à
afficher, ça doit pouvoir se faire)
« Dernier articles avec les mêmes mots clés »
(définir le nombre de mots en commun pour
qu’un article apparaisse)
« Article utilisant les mêmes influences »
et par exemple pour les brouillons collaboratifs,
« Autres articles avec le même statut »

Sinon, j’adore le style des titres d’articles de blog.christophelebot.fr, faudrait que je pense à inverser
quelques balises chez moi pour que les meta données prennent cette place. Ya-t-il un style wordpress particulier à l’origine de tout ceci ?

14 mai 2007, 23h04 · Répondre

Christophe

Concernant les catégories d’un l’article (à gauche du texte principal), j’ai volontairement mélangé thèmes et mots-clés, mais j’aurais très bien pu les séparer. Je ne vois donc aucun obstacle à avoir 4 types de méta-données.

Le thème WordPress est du « fait maison » à 100%… enfin plutôt 70% car il me reste beaucoup de choses à terminer.

14 mai 2007, 23h45 · Répondre

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *