Utilizzando un menu walker aggiungere un elemento personalizzato alla fine degli elementi del menu


10

Devo aggiungere un campo di ricerca alla fine di un menu in una voce di elenco.

Ho guardato i camminatori, ma ho trovato davvero difficile capire qual è l'ultimo oggetto (o addirittura ottenere il totale). Inoltre dove aggiungerei il codice per l'elemento personalizzato.

Ho attualmente;

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

Risposte:


19

Non hai bisogno di un deambulatore in questo caso. È wp_nav_menu_itemsdisponibile un filtro chiamato . Ti consente di modificare le voci dell'elenco di un menu. Basta aggiungere la propria voce di elenco con il campo di ricerca.

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

Nota: se si desidera targetizzare solo un menu specifico, esiste un filtro dinamico:

wp_nav_menu_{$menu->slug}_items


asso - completamente dimenticato di quel metodo ... grazie.
v3nt,

3
È possibile selezionare $argsper aggiungere la ricerca solo a un determinato tema (menu) posizione.
Stephen Harris,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.