WordPress est un excellent CMS. Vous pouvez en faire ce que vous voulez. Mais parfois, vous pouvez rencontrer un problème avec certaines fonctions de base. Par exemple, vous utilisez probablement le is_front_page et is_home WordPress Homepage conditionnel dans vos thèmes et plugins (vous pouvez en savoir plus sur les fonctions conditionnelles dans notre article sur les balises conditionnelles). Mais vous vous trompez!

Paramètres de la page d’accueil

Avec ces fonctions conditionnelles, vous pouvez vérifier si la page d’accueil est affichée (is_home), ou si la page d’accueil utilise une page statique (is_front_page). Vous pouvez définir un tel comportement dans Réglages=> En train de lire.

Dans votre plugin ou thème, vous pouvez utiliser ces fonctions pour afficher ou modifier le contenu en fonction des paramètres utilisateur. Mais vous faites une énorme erreur: vous ne prenez pas en compte la page de blog statique. Lorsque vous définissez une page statique pour votre page d’accueil, vous pouvez également définir une page de blog: elle remplacera la page d’accueil WordPress par défaut afin de répertorier chaque article.

Longue histoire en bref: is_front_page doit toujours être testé avec et avant is_home. Et voici pourquoi.

Comment ça fonctionne

1. Paramètres normaux:

La page d’accueil par défaut de WordPress répertorie vos derniers articles.

  • Voici l’URL: website.com
  • is_home renvoie TRUE
  • is_front_page renvoie TRUE

Ici, il n’y a aucun problème.

2. Page d’accueil statique:

La page d’accueil utilise l’une de vos pages statiques.

  • L’URL est toujours website.com
  • is_home renvoie FALSE
  • is_front_page renvoie TRUE

Il n’y a aucun problème avec votre page d’accueil statique: is_front_page renvoie vrai.

3. Page de blog statique

L’une de vos pages répertorie tous vos messages.

  • L’URL est website.com/pagename
  • is_home: TRUE
  • is_front_page: FALSE

Ici, vous pouvez avoir quelques problèmes: is_home renvoie TRUE, mais ce n’est pas votre page d’accueil: c’est une page WordPress qui répertorie tous les articles, comme le ferait une archive de catégorie principale.

Utiliser des balises conditionnelles

Lorsque vous créez un plugin ou un thème, vous devez considérer que les utilisateurs peuvent utiliser ces paramètres de page. Donc, chaque fois que vous utilisez is_home, vous devriez toujours tester is_front_page avant, et vous devez toujours utiliser des paramètres conditionnels pour ce faire.

Sinon, vous pourriez avoir des problèmes avec certains utilisateurs. Par exemple, si vous testez uniquement is_home pour afficher le contenu de votre page d’accueil, il y aura des problèmes avec la page d’accueil statique qui n’affichera pas le bon contenu.

Voici comment bien faire les choses:

if ( is_front_page() && is_home() ) {

    // Default homepage ( both the front page and the recent posts page)

} elseif ( is_front_page() ) {

    // Static homepage

} elseif ( is_home() ) {

    // Blog page

} else {

    // Everything else

}

C’est la seule (bonne) façon d’afficher ou de modifier le contenu de votre page d’accueil et de votre page de blog.

Important: Veuillez noter que ces fonctions ne fonctionnent qu’une fois que WordPress est chargé, par exemple sur des fichiers de modèle ou des hooks d’action spécifiques. Vous ne pouvez pas simplement vider ces conditions dans functions.php et vous attendre à ce qu’elles fonctionnent.

Et vous?

Avez-vous déjà rencontré ce problème? Quelle a été votre solution? Je veux en entendre parler!

Share: