web-dev-qa-db-fra.com

is_front_page, is_page ('slug'), is_page (id) ne fonctionne pas

Aucune des actions suivantes ne permet d'afficher un format conditionnel dans la barre latérale lorsque la page actuelle est la page d'accueil:

  • is_front_page,
  • is_page ('home'),
  • is_page (id)

J'ai ajouté une clause else qui est implémentée sur la page d'accueil.

Dans Options> Lecture, j'ai spécifié une page appelée Accueil comme page de couverture. Le slug 'home' et l'identifiant de page 13 (obtenus à partir de l'URL lors de l'édition de la page d'accueil) renvoient tous la valeur false.

Si je place <?php the_ID(); ?> dans la barre latérale, il affiche les identifiants des publications de blog qui sont également affichées (titre uniquement) par home.php (qui est le modèle attribué à la page d’accueil).

Je ne sais pas comment afficher explicitement l'identifiant de page sur le serveur afin que je sache que j'utilise le bon identifiant.

1
Steve

Essayez de placer un appel wp_reset_query function après votre boucle sur le modèle de page d’accueil.

Si vous utilisez une requête personnalisée sur la page d'accueil et que vous n'utilisez pas wp_reset_query, la vérification conditionnelle pointe toujours vers le dernier message récupéré par cette requête personnalisée et ne vérifie donc pas si homepage.

2
Rutwick Gangurde

Sans voir exactement ce qui se passe dans votre code, il semblerait que l'endroit où vous testez l'ID de page dans la barre latérale se trouve déjà dans une boucle affichant des messages dans votre barre latérale.

Essayez d'exécuter votre test conditionnel avant le début de la boucle de la barre latérale, en la stockant éventuellement dans une variable différente de votre fichier home.php et en vérifiant cette variable dans la barre latérale à la place de l'ID de publication en cours.

0
CharlesRock