web-dev-qa-db-fra.com

Is_page et is_front_page peuvent-ils tous deux être vrais?

Pour une raison quelconque, is_front_page n'est pas déclenché sur mon sous-site, vous exécutez un thème enfant avec son propre en-tête avec une page définie en tant que page d'accueil statique sous Lecture.

J'ai ce code dans header.php pour contrôler les métatags à afficher sur un article/une page ou sur la page d'accueil, mais seul le is_single/is_page est imprimé.

<?php if (is_single() || is_page()) : if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

<!-- this is printed -->

<?php endwhile; endif; elseif(is_home() || is_front_page()) : ?>
<!--this is not printed -->

<?php endif; ?>

Je me demandais si les is_page et is_front_page s'annulaient puisqu'ils sont tous les deux vrais lors de l'utilisation d'une page de garde statique?

1
Morten Skogly

En effet, si votre site comporte une page statique au recto, la condition is_page sera vraie et WP n'atteindra jamais la elseif.

Si vous souhaitez un autre modèle pour votre page d'accueil, vous devez l'exclure de la première condition afin qu'elle renvoie false dans ce cas. Comme ça:

if ((is_single() || is_page()) && !is_front_page())

Vous pouvez également inverser les déclarations: premier test pour home/front et si cela échoue pour single/page.

1
cjbj