Fügen Sie mithilfe eines Menü-Walkers ein benutzerdefiniertes Element am Ende der Menüelemente hinzu


10

Ich muss ein Suchfeld am Ende eines Menüs in einem Listenelement hinzufügen.

Ich habe mir Wanderer angesehen, aber es fällt mir wirklich schwer, herauszufinden, was der letzte Gegenstand ist (oder sogar die Summe zu erhalten). Auch wo würde ich den Code für das benutzerdefinierte Element hinzufügen.

Ich habe derzeit;

class mainNav_walker extends Walker_Nav_Menu
{
    public function start_el( &$output, $item, $depth, $args )
    {
        //print_r($item);

        $output .= $this->custom_content( $item );
        parent::start_el( &$output, $item, $depth, $args );
    }

    protected function custom_content( $item )
    {
       // add <li>SEARCH FIELD HERE?</li>
    }
}

Antworten:


19

In diesem Fall brauchen Sie keinen Walker. Ein Filter namens wp_nav_menu_itemsist verfügbar. Hier können Sie die Listenelemente eines Menüs bearbeiten. Fügen Sie einfach Ihr eigenes Listenelement mit dem Suchfeld hinzu.

add_filter( 'wp_nav_menu_items', 'add_search_to_nav', 10, 2 );

function add_search_to_nav( $items, $args )
{
    $items .= '<li>SEARCH</li>';
    return $items;
}

Hinweis: Wenn Sie nur auf ein bestimmtes Menü abzielen möchten, ist ein dynamischer Filter vorhanden:

wp_nav_menu_{$menu->slug}_items


ace - diese Methode komplett vergessen ... danke.
v3nt

3
Sie können das Kontrollkästchen aktivieren $args, um die Suche nur einem bestimmten Thema (Menü) hinzuzufügen.
Stephen Harris
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.