Aller au contenu principal
Version: 26.0.9.0

menu

Affiche un menu WordPress dans un template Twig en utilisant son emplacement (location) défini dans config/menu.yaml.

Utilisation de base

{% menu 'header' %}
    <ul>
        <li>{{ item.title }}</li>
    </ul>
{% endmenu %}

Options d'affichage

Avec le composant intégré

Pour une utilisation rapide sans personnalisation :

{{ component('menu', {location: "header", orderBy: "title"}, "elementum") }}

{# Version simplifiée #}
{{ component('menu', ["header"], "elementum") }}

Personnalisation avancée

Pour personnaliser l'affichage, copiez et modifiez : elementum/views/components/menu.html.twig

Paramètres

Format court (recommandé)

{% menu 'header' %}{% endmenu %}

Format complet

{% menu {location: 'header', orderby: 'title'} %}{% endmenu %}
ParamètreTypeRequisPar défautDescription
locationstringOui-Emplacement du menu défini dans config/menu.yaml
orderbystringNonmenu_orderOrdre de tri des éléments du menu

Propriétés disponibles

Dans le bloc {% menu %}, vous avez accès à item, itération du premier niveau.

Propriétés de base (héritées de WP_Post)

  • ID, post_title, post_name, etc.

Propriétés ajoutées

PropriétéTypeDescription
childrenarrayÉléments enfants directs
depthintNiveau de profondeur (0 pour le niveau racine)

Exemple complet

    <nav>
        <ul>
            {% menu 'main-menu' %}
                <li class="{{ item.children ? 'has-children' }} {{ item.current ? 'active' }}">
                    <a href="{{ item.url }}">{{ item.title }}</a>

                    {% if item.children %}
                        <ul class="sub-menu">
                            {% for child in item.children %}
                                <li class="{{ child.current ? 'active' }}">
                                    <a href="{{ child.url }}">{{ child.title }}</a>
                                </li>
                            {% endfor %}
                        </ul>
                    {% endif %}
                </li>
            {% endmenu %}
        </ul>
    </nav>