Quand utiliser is_home () vs is_front_page ()?

66

J'ai constaté que cela is_front_pagesemble redevenir vrai lorsque je consulte la page d'accueil et qu'un seul post collant y est attribué.

Il renvoie également true lorsque j'ai attribué une page comme page de couverture statique via Paramètres> Lecture .

Pourquoi voudrais-je jamais utiliser is_home()?

N2Mystique
la source

Réponses:

65

is_front_page()renvoie true si l'utilisateur se trouve sur la page ou la page de messages définie sur la page d'accueil dans Paramètres-> Lecture-> Votre page d'accueil s'affiche

Donc, si vous définissez about uscomme page de couverture, cette condition ne sera vraie que si vous affichez la page à propos de nous .

is_home() renvoie true lorsque sur la page de liste des articles, il s’agit généralement de la page qui affiche les 10 derniers articles.

Si les paramètres sous Votre page d’accueil sont laissés par défaut, la page d’accueil deviendra vraie pour les deux is_front_page()etis_home()

Un exemple d'utilisation is_home():

  • Vous avez défini la page de vos messages sur une page appelée Nouvelles .
  • Un utilisateur navigue à cet endroit et dans l'en-tête vous souhaitez afficher une navigation supplémentaire.
  • Vous pourriez utiliser is_home()pour faire ceci.
Brady
la source
18
Exactement. Je différencie comme suit: is_front_page()retourne vrai lors de l' affichage de la page avant du site (si l' affichage de l'index des messages de blog ou une page statique), alors que les is_home()rendements réels lors de l' affichage du blog Messages Index (si affiché sur la page d' accueil ou sur une page statique).
Chip Bennett
3

J'ai découvert cela is_home()et is_front_page()ne livre pas ce qui est attendu pour les sites multiples. Ma solution de contournement utilisant des goodies PHP intégrés:

if($_SERVER['REQUEST_URI'] == '/') {
    // you must be on the home page
}

Comme indiqué dans les commentaires, cette approche ne fonctionnera pas pour les instances de WP installées dans des sous-répertoires de la racine Web. Utilisez à votre discrétion.

Dylan Pierce
la source
Veuillez expliquer comment il ne donne pas les résultats escomptés.
Christine Cooper
Sur un site principal multi-site, si vous utilisez une forme quelconque is_home()ou is_front_page()sur une page de garde statique ou de blog, les fonctions renverront toutes deux false.
Dylan Pierce
1
Je viens de tester les deux conditions sur un environnement multisite et les deux sont revenus lorsque j'ai visité les /pages respectives .
Christine Cooper
J'utilise la boîte wordpress VVV avec le plugin multisite: github.com/Varying-Vagrant-Vagrants/vvv-multisite Peut-être qu'il y a quelque chose de mal configuré? Indépendamment, laisser une réponse pour une solution de contournement si quelqu'un se présente avec une situation similaire.
Dylan Pierce
Votre code est presque parfait, la seule chose à faire est de savoir ce qui se passe si WP est installé dans un sous-répertoire, par exemple / blog ou / wordpress. Que ce sera inutile.
Remzi Cavdar
1

Vous voudriez l'utiliser is_home()pour vérifier si l'utilisateur visualise votre liste de messages de blog (généralement configuré pour afficher 10 messages par page). Si vous avez un home.phpfichier dans votre thème, celui-ci sera affiché lorsque la is_home()condition est vraie.

Les éléments suivants peuvent éventuellement dissiper une certaine confusion: quand is_front_page()et les is_home()conditions, les deux sont vraies, le modèle front-page.phpsera utilisé à la place de home.php.

Momekh
la source