web-dev-qa-db-fra.com

Affichage des sous-pages sur la page parent?

J'aimerais créer un menu de navigation dans lequel je vais afficher des pages à deux niveaux.

Pour illustrer cela:

  • Parent 1
  • Parent 2
  • Parent 3 (actuel)
    • Enfant 1
    • Enfant 2
    • Enfant 3
  • Parent 4

Je souhaite donc afficher toutes les pages parentes de mon conteneur de navigation, mais uniquement les pages enfants lorsque l'utilisateur se trouve actuellement sur sa page parente.

1
jmysona

C'est assez facile, car WordPress définit les classes css pour les pages parentes. Par défaut, nous masquons toutes les sous-listes (ul) du menu avec

.menu ul {
    display: none;
}

Ensuite, lorsque la page parent est sélectionnée, nous utilisons les classes CSS définies par WordPress pour afficher à nouveau les sous-listes.

.menu .current_page_ancestor, .menu .current_page_parent {
    display: block;
}

Donc tout ce dont vous avez besoin c'est dans votre modèle

Modèle:

<ul class="menu">
    <?php wp_list_pages('title_li=') ?>
</ul>

et cela dans votre fichier css.

CSS:

.menu ul {
    display: none;
}

.menu .current_page_ancestor > ul, .menu .current_page_parent > ul {
    display: block;
}
1
Horttcore