[AUTOMATIQUE] Cet article a plus de 5 ans.
Il se peut donc que les informations qu'il fournit ne soient plus totalement exactes.

J’ai récemment rencontré un problème lorsque j’ai voulu tester si je me trouvais bien sur la page d’accueil de mon site ou non. Je me suis donc penché sur les conditional tags pour trouver la solution à mon problème.

J’ai eu la chance de tomber sur cette page qui m’a apportée une réponse plutôt complète et franchement claire. Voilà le résumé pour les anglophobes.

Pour faire simple un conditional tag est un test qui retounre OUI ou NON en fonction de la question qu’il pose à WordPress.

Les tags conditionnels, ou conditional tags dans WordPress sont des outils bien pratiques et surtout puissant lorsque l’on comprend comment les utiliser.

Par exemple, suis-je un utilisateur connecté ?

<?php is_user_logged_in() ?>

Suis-je sur une page d’article ?

<?php is_single() ?>

Vous pouvez consulter la grande majorité des tags conditionnel sur cette page du CODEX.

Les conditional tags en homepage

Lorsque vous installez un thème Worpdress, vous pouvez choisir dans Réglage>Lecture>La page d’accueil affiche : Les derniers articles OU Une page statique.

2014-02-12_173842

Lorsque vous choisissez la première option, ce sera la page index.php de votre thème qui sera utilisée. Il faudra utiliser le tag conditionnel is_home() pour tester si vous êtes bien sur la page d’accueil.

En revanche, si vous choisissez la seconde option, ce sera le fichier page.php ou le template de page choisi qui sera utilisé. Il faudra dans ce cas utiliser is_front_page().

Les différents cas de figure

La page d’accueil par défaut est sélectionnée (index.php)

  • URL : monsite.com
  • is_home() retourne TRUE
  • is_front_page() retourne TRUE

La page d’accueil est une page statiques

  • URL : monsite.com
  • is_home() retourne FALSE
  • is_front_page() retourne TRUE

Page d’accueil du blog statique (accueil d’une page d’archive/taxonomie/tag)

  • URL : monsite.com/blog
  • is_home() retourne TRUE
  • is_front_page() retourne FALSE

Nous avons ici un problème car la page blog qui liste tous les posts du blog est considéré comme homepage du site, alors qu’il ne s’agit en fait que de la homepage du blog.

Voici donc comment utiliser ces test pour être sûr de savoir si vous êtes bien sur tel ou tel page « d’accueil ».<?php

if ( is_front_page() && is_home() ){
// Page d'accueil index.php
} elseif ( is_front_page()){
// Page définie en page d'accueil
} elseif ( is_home()){
// Accueil d'une catégorie/taxo/tag
} else {
// Le reste...
}
?>

 

Article rédigé parBrice CAPOBIANCO

Autodidacte passionné par WordPress. J'aime apprendre et créer pour ensuite partager !

Coorganisateur des Meetups WordPress Rennes et fondateur de bweb.
Partager cet article

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