web-dev-qa-db-fra.com

is_page () ne fonctionne pas avec les archives?

Je crée un menu dynamique et, dans ma boucle foreach, je lance is_page en utilisant le titre de la page:

<li class="<?= (is_page($tlp->post_title) ? 'active' : '');?>">
</li>

Cela fonctionne bien pour les pages qui sont réellement créées dans WP admin. Mais pour d'autres types de publications qui s'appuient sur l'archive, cela ne fonctionne pas.

J'ai donc un type de message 'team' et une page archive-team.php qui utilise les données.

Lorsque sur cette page, je n'ai aucun moyen de vérifier si la page est actuellement active?

Je suis tombé sur is_archive () mais cela ne se passe pas comme prévu. Renvoie juste s'il s'agit d'une archive.

Je parcours également les pages pour créer ce menu. J'ai donc une page de blog configurée et je vérifie simplement le modèle par défaut pour inclure l'archive s'il s'agit de la page de blog.

De l'aide?

1
Lovelock

Vous pouvez utiliser is_page( $tpl->ID ) || is_single( $tlp->ID ) qui couvrira les publications, les pages et les types de publication personnalisés.

Pour le lien d’archive, utilisez is_post_type_archive( $post_type ). Si vous avez besoin de le surligner pour des articles uniques du même type, ajoutez || is_singular( $post_type )

1
TheDeadMedic