vendredi 25 septembre 2026

À propos

Contact

Lexique · Cœur de WordPress

Balise conditionnelle

En anglais : « Conditional tag »

Une balise conditionnelle est une fonction PHP qui renvoie vrai ou faux selon le contexte de la page affichée, pour adapter l'affichage d'un gabarit WordPress.

Dans un thème WordPress, un même fichier de gabarit doit souvent réagir différemment selon la page consultée : afficher un titre d’archive ici, masquer la barre latérale là. C’est le rôle des balises conditionnelles, des fonctions comme is_single(), is_page() ou is_home() qui interrogent la requête en cours et renvoient un booléen.

Fonctionnement dans WordPress

Chaque balise conditionnelle lit l’état de l’objet WP_Query associé à la requête principale. Elle doit être appelée après que WordPress a déterminé quelle page afficher, c’est-à-dire à partir du hook wp ou dans le corps d’un gabarit — jamais avant, sous peine de résultats faux. Les plus courantes sont is_front_page(), is_archive(), is_category(), is_singular() et is_admin().

Exemple

if ( is_singular( 'post' ) && has_post_thumbnail() ) {
    the_post_thumbnail( 'large' );
} elseif ( is_archive() ) {
    the_archive_title();
}

Ce fragment affiche l’image mise en avant sur un article, ou le titre d’archive sur une page de liste — deux comportements pilotés par une seule condition.

Pièges fréquents

  • Utiliser une balise conditionnelle dans functions.php avant le hook wp renvoie systématiquement false, la requête n’étant pas encore résolue.
  • is_page() ne fonctionne que pour le type de contenu page ; pour un type personnalisé, on utilise is_singular( 'mon_type' ).
  • Sur une requête personnalisée (second WP_Query), ces fonctions globales continuent de refléter la requête principale, pas la boucle secondaire.
  • Des balises moins connues comme is_tax() ou is_post_type_archive() couvrent les taxonomies personnalisées et les archives de types de contenu sur mesure ; s’en tenir aux seules fonctions historiques liées aux articles conduit souvent à rater ces cas.

Bon à savoir

Certaines balises acceptent un paramètre pour affiner le test, comme is_page( 'contact' ) qui vérifie un slug précis plutôt que n’importe quelle page. Combiner plusieurs conditions dans un même if reste plus lisible que de multiplier les fichiers de gabarit spécialisés pour chaque cas de figure.