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

9

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 averiguar cuál es el último elemento (o incluso obtener el total). También donde agregaría el código para el artículo 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>
    }
}
    
pregunta v3nt 16.05.2012 - 12:15

1 respuesta

15

No necesitas un andador en este caso. Un filtro llamado wp_nav_menu_items está disponible. Te 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 quieres apuntar a un menú específico, existe un filtro dinámico:

wp_nav_menu_{$menu->slug}_items

    
respondido por el Geert 16.05.2012 - 12:31

Lea otras preguntas en las etiquetas