wp nav menu: aggiungere attributi agli elementi del menu
Sto cercando di capire se è possibile aggiungere un attributo a un elemento del menu di navigazione WordPress.
Per dimostrare, questo codice PHP:
<?php
wp_nav_menu(array(
'menu' => 'main',
'container' => false
));
?>
genererebbe un menu così:
<ul id="menu-main" class="menu">
<li id="menu-item-01" class="menu-item">Menu 01</li>
<li id="menu-item-02" class="menu-item">Menu 02</li>
<li id="menu-item-03" class="menu-item">Menu 03</li>
<li id="menu-item-04" class="menu-item">Menu 04</li>
</ul>
ma quello che vorrei ottenere è qualcosa del genere:
<ul id="menu-main" class="menu">
<li id="menu-item-01" class="menu-item" data-hook="01">Menu 01</li>
<li id="menu-item-02" class="menu-item" data-hook="02">Menu 02</li>
<li id="menu-item-03" class="menu-item" data-hook="03">Menu 03</li>
<li id="menu-item-04" class="menu-item" data-hook="04">Menu 04</li>
</ul>
È possibile ottenere questo risultato? L'attributo non deve essere necessariamente data-hook
, lo sto usando solo come esempio, mi serve solo qualcosa che possa usare come identificatore.
Puoi utilizzare un Custom Walker per aggiungere attributi agli elementi del menu.
In pratica, aggiungi il parametro 'walker' alle opzioni di wp_nav_menu() e chiami un'istanza di una classe migliorata:
wp_nav_menu(
array (
'menu' => 'main-menu',
'container' => FALSE,
'container_id' => FALSE,
'menu_class' => '',
'menu_id' => FALSE,
'depth' => 1,
'walker' => new Description_Walker
)
);
La classe Description_Walker
estende Walker_Nav_Menu
e modifica la funzione start_el( &$output, $item, $depth, $args )
.
Dal Codex:
http://codex.wordpress.org/Function_Reference/wp_nav_menu#Using_a_Custom_Walker_FunctionHo trovato questo tutorial, potresti trovarlo molto utile:
http://www.kriesi.at/archives/improve-your-wordpress-navigation-menu-output
