[WORDPRESS] affichage différent en fonction de la catégorie d’un article (mis à jour)

Créé le : 7 octobre 2015
Catégorie: Divers
Mise à jour : 24 mai 2016

[WORDPRESS] affichage différent en fonction de la catégorie d’un article (mis à jour)

closeCet article a été publié il y a 1 an 8 mois 18 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

Tester la catégorie en PHP

Dans votre thème, si vous voulez appliquer différentes apparences selon la catégorie des articles on peut ajouter dans la boucle une condition pour tester le nom de la catégorie de l’article.

Cas général

<?php
if ( in_category( 'nom_de_la_categorie' )) {
	// code si ok
echo 'catégorie ok';
} 
else {
	// code si différent
echo 'catégorie differente';
} ?>

 

Exemple

Exemple : Si l’article fait partie de la catégorie « entreprise » la date de l’article ne s’affiche pas et affiche un bandeau

&amp;lt;?php
if ( in_category( 'entreprises' )) {
	// catégorie = entreprises...
echo '&amp;lt;span class="bandeau_entreprise"&amp;gt;ENTREPRISE&amp;lt;/span&amp;gt;';
    
} 
else {
	// catégorie different de entreprises...
?&amp;gt;
&amp;lt;span class="date_article"&amp;gt;&amp;lt;?php the_time('j M Y'); ?&amp;gt;&amp;lt;/span&amp;gt;
&amp;lt;?php } ?&amp;gt;

STOOOOP! il y a encore mieux

La solution ci dessus fonctionne parfaitement, mais c’est un peu une usine à gaz quand même pour pas grand chose. Il y a mieux.

  • Au lieu d’ouvrir le div « post » du genre
<div class="post">
  • Il suffit de l’ouvrir avec les variables WordPress qui vont bien (id = pour avoir un id unique par post et surtout post_class pour la catégorie)
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>

Et là …magique, il y a plein de class qui nous intéressent, surtout une qui commence par category-

 

Il suffit donc de faire son CSS en fonction de la Class category-nomdemacategorie et le tour et joué.

.category-nomdemacategorie{background:red;}

Exemple

Sur cet article on a ça :

class= »post-1640 post type-post status-publish format-standard has-post-thumbnail hentry category-divers »

Explications : on a 8 Class au lieu d’une.

  • post-1640 c’est un code unique
  • post et type-post car bah c’est un post!
  • category-divers là c’est le nom de la catégorie

Il y a aussi des trucs plus exotique comme:

  • status-publish, le statut de l’article
  • format-standard le format
  • has-post-thumbnail si l’article possède une image à la une (peut être très pratique)
  • sticky si l’article est mis en avant
  • hentry qui est…bah ça j’en sais rien du tout!!!

Chaque Class peut être « CSSisée » différement selon le besoin

 

Source : https://codex.wordpress.org/Function_Reference/in_category

Source : https://codex.wordpress.org/Function_Reference/post_class

Laissez un commentaire