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>
    }
}
v3nt
quelle

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

Geert
quelle
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