La lecture du Codex est un exercice que je pratique régulièrement et qui réserve parfois de bonnes surprises. Aujourd’hui, c’est le cas avec has_tag(). Bien qu’absent de la liste des nouvelles fonctionnalités, ce tag conditionnel à bien fait son apparition avec WordPress 2.6. Comment et pourquoi l’utiliser ? Magnéto :
Comment utiliser has_tag() ?
Contrairement à is_tag()
qui permet d’afficher un contenu spécifique lorsqu’une page de tags est demandée et qui peut être placé n’importe où dans votre template, has_tag()
, qui est très utile pour détecter si un billet contient un ou plusieurs mots-clés, doit se situer dans la boucle WordPress.
Pour ce faire, il suffit d’ajouter le code suivant juste après la boucle while
…
<?php while (have_posts()) : the_post(); ?> <?php if ( has_tag('News') ) continue; ?>
… et les billets comportant le tag News ne s’afficheront pas.
Plus d’informations
has_tag()
repère tous les billets avec un tag quelconque,has_tag('News')
pour les billets tagués « News »,has_tag('News','Insolite','Humour')
pour isoler les billets possédant tous les tags fournis en argument.- MAJ : il semble que la ligne au-dessus ne fonctionne pas. Pour arriver au même résultat écrivez plutôt :
<?php if ( has_tag('News') || has_tag('Humour') || has_tag('Insolites') ) continue; ?>
Pourquoi utiliser has_tag()
?
Dans le cadre de la réorganisation quasi-permanente de mon blog, j’ai fusionné les catégories En bref et News avec Revue de web pour réduire le nombre de rubriques. Or, seul le premier billet de cette catégorie doit s’afficher en haut du blog sous l’intitulé C’est vite dit… ; les anciens billets de cette catégories sont affichés plus bas dans la barre latérale.
Par ailleurs, pour garder une certaine cohérence avec les autres rubriques du blog, j’ai reclassé les billets appartenant auparavant à News dans des catégories plus précises. Ainsi, une News taguée « News » concernant WordPress est désormais classée dans… WordPress !
L’effet de bord, c’est que toutes les petites News se sont affichées dans la suite des billets du blog, ce que je voulais éviter pour des raisons esthétiques et éditoriales : je ne veux pas que le lecteur de passage qui atterrit sur la Home ait le sentiment que le blog est composé uniquement de petites brèves sans grande valeur ajoutée 😉
Dans un cas comme ça, has_tag()
s’avère donc indispensable pour isoler tous les billets partageant les mêmes tags sans se soucier de leurs catégories respectives. WordPress, quelle souplesse !
Allez, has_fun()
^_^
Yeah ce truc est génial ! Ça fait longtemps que je ne suis plus allé me perdre dans le codex. À tort, il faut que je m’y remette ! :p
Allons nous perdre ensemble dans le codex !!! Le truc de Geek…
Super sympa cette fonction en tout cas !
@burning’ et @Francis > yep, le codex, c’est vraiment un truc de ouf… c’est un peu « bordélique » mais tellement complet 😉
Oops! Qu’est-ce que ça peut être compliqué WP, quand même…
Quand on pense qu’il existe, depuis 2004, ce genre de choses pour obtenir – exactement – le même résultat:
<txp:article_custom section= »news » limit= »10″ sort= »Posted » form= »news_display » />
(affiche les 10 derniers articles de la section « news »)
<txp:category_list categories= »News,Humour,Insolites » />
Pour la petite histoire, Alex Shiels (alias Zem) – TXP Head Core Developer – a rejoint la force obscure de WP avec ces excellentes idées…
Allez, bonne journée les WPistes!
Patrick.
Patrick > Je serais curieux de savoir en quoi WP est si compliqué. Ce genre d’article qu’à écrit Bruno est un billet plutôt pour designers et développeurs plutôt que pour l’utilisateur lambda…
@Francis,
…justement, il ne me semble pas que les designers soient des experts en PHP. Petit flash back: j’ai essayé WP en 2004, devant l’impossibilité – à l’époque, ce qui évidemment, via des plugins n’est plus valable – de créer une simple page d’accueil (sans les articles du blog, donc, je me suis tourné vers TXP. La phylosophie – initiale – derrière ce CMS (WP n’en est pas un, d’ailleurs) était de créer un outil simple pour les designers (terme d’ailleurs exagéré, on devrait plutôt dire graphiste web).
Les « tags » TXP sont très simples effectivement comme j’ai voulus le montrer… alors que WP avec sont code PHP nécessite des connaissances bien plus avançées (ce que je commence à maîtriser d’ailleurs un peu mieux chaque jour).
Si tu te place en programmeur, je ne pense pas que WP soit la panaçée (il existe des outils bien plus intéressants – de ce point de vue – tel que les frameworks!)
Dernière chose, enfin. Vous savez évidemment que Matt (le gourou WP) s’est inspiré des – meilleurs CMS du moment (TXP et Drupal, dixit) – pour concevoir WP!
Cette fonctionnalité – [WPressième] dont est le thème de cet article – n’est pas nouvelle pour d’autre moteurs. Plagiat, vol de compétences? Bref, cela ne me fait ni chaud ni froid. Bref, je ne saute pas de joie comme certains ci-avant.
Voilà pourquoi. Ai été assez clair?
Cordialement,
Patrick.
@Patrick:
C’est même possible sans plugin depuis quelques versions déjà.
Oui et non. Ca reste un avis personnel, mais je fais une différence entre un webdesigner et un designer web : Si le premier est un graphiste orienté web, le second s’occupe plus volontiers d’architecture web d’ergonomie, d’accessibilité tout en connaissant le b a ba du marketing pour orienter les clics du visiteur.
Ce qui m’a vraiment attiré chez WP (même par rapport à Dotclear) c’est qu’il n’y a pas de moteur de template comme chez la plupart des CMS. WordPress propose des fonctions, des boucles qui reprennent la syntaxe du PHP, de sorte que quelqu’un qui n’a pas peur de mettre les mains dans le code de WP, apprend en même temps les rudiments de PHP, comme Jourdain faisait de la prose sans le savoir 😉
A ce titre, la syntaxe de textpatern, comme celle de Dotclear, est un peu plus opaque.
Bien sûr ! Comme tout wordpressiste je connais l’histoire de wp et ce qu’il doit aux autres, c’est d’ailleurs marqué en toutes lettres dans la page about de http://wordpress.org :
Je te trouve particulièrement dur dans ce passage : aujourd’hui aucun produit sérieux ne peut sortir sans s’inspirer très fortement de ce qui se fait de mieux. Par exemple, le nouveau typo3 s’inspire de certaines fonctions de WP et loin d’en faire un secret, ce genre de « copiage » est plutôt bien vu, voire mis en avant pour montrer qu’on n’essaie pas de réinventer la roue au risque de faire moins bien que la « concurrence ».
Je crois que chacun ici défend sa paroisse… Sûrement que TextPattern dont je n’avais pas entendu parler depuis un bon moment à ses adeptes et ses avantages. Personnellement, pour avoir essayé pas mal de CMS, si WP est très compliqué, j’en connais d’autres qui sont alors à se tirer les cheveux !! 😀 Je crois surtout que c’est une question d’habitude…
Et pour la petite histoire sur les designers, graphistes et compagnie, ça me fait bien marrer vu que graphiste ne devrait être qu’une simple traduction du mot « designer » et que donc les webdesigners et graphistes web ne font qu’un. Y a qu’en France où ça existe ce truc… On cherche toujours un mot plus précis ou différent pour dire la même chose !!
Quoi qu’il en soit, concernant les plagiats et vols de compétences, je crois surtout qu’on évolue là dans le monde du GPL… par conséquent, pas de polémique à avoir…
Si les définitions des principaux métiers du design numérique ne vous semblent pas claires, je vous conseille d’aller faire un tour sur le site de Designers interactifs (qui vient d’ailleurs d’être refait), c’est une mine d’or à ce sujet, notamment la rubrique « métiers » => http://ressources.designersinteractifs.org/ressources/metiers
Merci Bruno.
Je pense que tu as bien compris la teneur de mes propos qui ne cherchaient à vilipender rien ni personne 😉
Simplement je voulais vous montrer que la syntaxe de WP est tout de même (avouez-le 🙂 bien complexe.
Pour le moins, elle n’incite pas les propriétaires de « blog » à intervenir facilement sur l’architecture de leur média : je connais effectivement des « blogs » WP – utilisant des « templates » – au contenu intéressant (oui, oui) qui, manifestement, présentent des soucis de fonctionnement (d’architecture, je ne parle pas de disfonctionnement de WP!) et que leur propriétaire ne parviennent pas à corriger.
Je te cite:
Pour ma part, ce qui m’a plus ailleurs 😉 c’est effectivement cette simplicité incomparable d’appel des fonctionnalités dynamiques du moteur : constitué d’un ensemble de balises similaires au xhtml, chacun peut accéder à n’importe quoi efficacement, aidé d’une documentation claire et pédagogique mais aussi d’une communauté disponible et ne souffrant d’aucun a priori. A tel point que j’en suis venu – comme toi – à m’intéresser au PHP afin d’augmenter considérablement mes besoins:
<txp:php>
(…) ici tout code PHP ainsi que les fonctions internes du core simplifiées et sécurisées (…)
</txp:php>
Je ne le pense pas. Quiconque connaissant un peu le balisage xhtml, peut utiliser et comprendre intuitivement ceci :
<txp:article limit= »10″ sort= »Published » />
ce qui affiche, à l’endroit que l’on souhaite, les dix derniers articles classés par ordre descendant de publication. Simpliste!
S’agissant de Dotclear, oui cette chose souffre de beaucoup de problèmes de conception initiale qui la limite considérablement, même dans sa dernière version 2.
Maintenant, et en toute objectivité, je reconnais – et admire – les moyens (entendez financiers) dont dispose WP qui lui ouvre des possibilités gigantesques. Sa réussite aussi, plusieurs millions d’installations de part le monde! Son offre d’hébergement gratuit contribuant à sa notoriété. Du bon marketing. Chapeau. Son « back-end » et assez réussi, il faut aussi l’avouer.
A tel point que j’ai plusieurs installations (différente versions) de WP en local sur ma machine.
Bref et pour conclure cette discussion, effectivement, Francis, chacun a ses préférences ou ses habitudes. Et je suis moi-même dans le lot ; bien que je continue à m’intéresser à l’actualité de l’Open Source, quitte à, justement, changer radicalement mes goûts. Pour preuve, je m’intéresse à ce site, voire à WP dont je suis l’évolution depuis la version 1.5 🙂
Cordialement,
Patrick.
@Patrick:
<txp:article limit=”10″ sort=”Published” />
Tu veux dire comme 🙂
Absoluement, oui Bruno :))
Bonne journée à toi.
Amicalement,
Patrick.