wp nav menu: añadir atributos a elementos del menú
Estoy tratando de averiguar si es posible adjuntar un atributo a un elemento del menú wp nav.
Para demostrar, este php:
<?php
wp_nav_menu(array(
'menu' => 'main',
'container' => false
));
?>
generaría un menú así:
<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>
pero lo que realmente me gustaría es algo como esto:
<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>
¿Es posible lograr eso? El atributo no tiene que ser data-hook
, solo lo uso como ejemplo, simplemente necesito algo que pueda usar como identificador.
Puedes usar un Custom Walker para añadir atributos a los elementos del menú.
Básicamente, añades un parámetro 'walker' a las opciones de wp_nav_menu() y llamas a una instancia de una clase mejorada:
wp_nav_menu(
array (
'menu' => 'main-menu',
'container' => FALSE,
'container_id' => FALSE,
'menu_class' => '',
'menu_id' => FALSE,
'depth' => 1,
'walker' => new Description_Walker
)
);
La clase Description_Walker
extiende Walker_Nav_Menu
y modifica la función start_el( &$output, $item, $depth, $args )
.
Del Codex:
http://codex.wordpress.org/Function_Reference/wp_nav_menu#Using_a_Custom_Walker_FunctionEncontré este tutorial, puede que te sea muy útil:
http://www.kriesi.at/archives/improve-your-wordpress-navigation-menu-output
