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ètre | Type | Requis | Par défaut | Description |
|---|---|---|---|---|
location | string | Oui | - | Emplacement du menu défini dans config/menu.yaml |
orderby | string | Non | menu_order | Ordre 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é | Type | Description |
|---|---|---|
children | array | Éléments enfants directs |
depth | int | Niveau 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>