Ich versuche herauszufinden, ob es möglich ist, einem wp nav-Menüelement ein Attribut zuzuweisen.
Um zu demonstrieren, diese PHP:
<?php
wp_nav_menu(array(
'menu' => 'main',
'container' => false
));
?>
würde ein Menü wie folgt ausgeben:
<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>
aber was ich eigentlich möchte, ist so etwas:
<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>
Ist das überhaupt möglich zu erreichen? Das Attribut muss nicht data-hook
sein. Ich verwende das nur als Beispiel, nur etwas, das ich als Bezeichner verwenden kann.
Sie können einen benutzerdefinierten Walker verwenden, um den Menüelementen Attribute hinzuzufügen.
Grundsätzlich fügen Sie den Optionen von wp_nav_menu () einen Parameter 'walker' hinzu und rufen eine Instanz einer erweiterten Klasse auf:
wp_nav_menu(
array (
'menu' => 'main-menu',
'container' => FALSE,
'container_id' => FALSE,
'menu_class' => '',
'menu_id' => FALSE,
'depth' => 1,
'walker' => new Description_Walker
)
);
Die Klasse Description_Walker
erweitert Walker_Nav_Menu
und ändert die Funktion start_el( &$output, $item, $depth, $args )
.
Aus dem Kodex:
http://codex.wordpress.org/Function_Reference/wp_nav_menu#Using_a_Custom_Walker_Function
Ich habe dieses Tutorial gefunden, vielleicht finden Sie es sehr nützlich:
http://www.kriesi.at/archives/verbessern-ihres-wordpress-navigation-menuoutput