Usando un andador de menú, agregue un elemento personalizado al final de los elementos del menú


10

Necesito agregar un campo de búsqueda al final de un menú en un elemento de la lista.

He estado mirando a los caminantes, pero me resulta muy difícil descubrir cuál es el último elemento (o incluso obtener el total). Además, ¿dónde agregaría el código para el elemento personalizado?

Actualmente tengo;

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

Respuestas:


19

No necesitas un andador en este caso. Un filtro llamado wp_nav_menu_itemsestá disponible. Le permite editar los elementos de la lista de un menú. Simplemente agregue su propio elemento de lista con el campo de búsqueda.

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: si solo desea orientar un menú específico, existe un filtro dinámico:

wp_nav_menu_{$menu->slug}_items


as - olvidé por completo ese método ... gracias.
v3nt

3
Puede marcar $argspara agregar solo la búsqueda a una ubicación de tema (menú) en particular.
Stephen Harris
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.