web-dev-qa-db-fra.com

Comment séparer les niveaux de liens dans un menu personnalisé?

J'essaie de créer un menu personnalisé et je ne vois pas comment je pourrais créer une UL pour les éléments de menu de niveau supérieur et une UL distincte pour toutes les options de menu des niveaux inférieurs.

Essentiellement, j'essaye de produire:

<ul class="first-level-links">
    <li class="first-level-link" id="A">
            <a href="#">first level link A</a>
    </li>
    <li class="first-level-link" id="B">
            <a href="#">first level link B</a>
    </li>
</ul>

<ul class="second-level-links-for-A">
    <li class="second-level-link">
        <p>second level link A.1</p>
        <ul class="third-level-links">
            <li class="third-level-link">third level link A.1.a</li>
        </ul>
    </li>
    <li class="second-level-link">
        <a href="#">second level link A.2</a>
    </li>
</ul>

Exemple http://christopheryanceyis.me/test.php

Puis-je faire cela dans un wordpress walker? Si c'est le cas, comment?

1
Christopher Yancey

J'ai rencontré un certain nombre de solutions potentielles à ce problème. Une solution que j'ai trouvée consiste à utiliser un Walker comme vous l'avez suggéré.

Cependant, selon mon expérience, toutes les solutions ont échoué dans un scénario ou dans un autre. Les échecs communs que j'ai vus avec différentes solutions que j'ai essayées:

  • Les menus de niveau secondaire/inférieur disparaissent lorsque vous cliquez sur un article de blog
  • Être obligé de spécifier l'élément de menu parent sur chaque page sur laquelle je montre le menu divisé
  • Des solutions qui reposent sur la hiérarchie des pages et non sur la hiérarchie du gestionnaire de menus

Après avoir traité ce problème sur de nombreux sites Web clients, j’ai finalement pris le temps de créer un plug-in de menu fractionné/menu secondaire approprié pour Wordpress. Mon plugin ne présente aucun des défauts que j'ai trouvés avec d'autres solutions.

Pour l'utiliser, vous pouvez implémenter le widget (mode facile) ou utiliser la fonction dans vos modèles là où vous utiliseriez normalement wp_nav_menu (mode développeur).

Vous pouvez le vérifier ici: https://mattkeys.me/products/wp-nav-plus/

1
Matt Keys