it-swarm.com.de

wp nav menu: Fügt den Menüelementen Attribute hinzu

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.

1
user1374796

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 ).

  1. Aus dem Kodex:
    http://codex.wordpress.org/Function_Reference/wp_nav_menu#Using_a_Custom_Walker_Function

  2. Ich habe dieses Tutorial gefunden, vielleicht finden Sie es sehr nützlich:
    http://www.kriesi.at/archives/verbessern-ihres-wordpress-navigation-menuoutput

3
Mike Madern