À l'aide d'un menu walker, ajoutez un élément personnalisé à la fin des éléments du menu


10

Je dois ajouter un champ de recherche à la fin d'un menu dans un élément de liste.

J'ai regardé des marcheurs mais j'ai vraiment du mal à comprendre quel est le dernier article (ou même obtenir le total). Aussi, où ajouter le code de l'élément personnalisé.

J'ai actuellement;

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

Réponses:


19

Vous n'avez pas besoin d'un déambulateur dans ce cas. Un filtre appelé wp_nav_menu_itemsest disponible. Il vous permet de modifier les éléments de la liste d'un menu. Ajoutez simplement votre propre élément de liste avec le champ de recherche.

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;
}

Remarque: si vous souhaitez uniquement cibler un menu spécifique, un filtre dynamique existe:

wp_nav_menu_{$menu->slug}_items


as - complètement oublié cette méthode ... merci.
v3nt

3
Vous pouvez cocher $argspour n'ajouter la recherche qu'à un emplacement de thème (menu) particulier.
Stephen Harris
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.