Llamar al título del menú dentro de la función de matriz wp_nav_menu

4

He estado luchando con esto por un rato. Quiero llamar a un menú, pero incluir el título del menú sobre la lista de menús. El código básico que tengo es el siguiente:

<?php wp_nav_menu( array(
'container'       => 'div',
'container_class' => 'rmm-footer',
'theme_location'  => 'resources'
));
?>

Esto produce una lista de la siguiente manera:

Elemento de menú 1 Elemento del menú 2 Elemento del menú 3

Pero quiero que sea como sigue -

TITULO Elemento del menú 1 Elemento del menú 2 Elemento del menú 3

¿Alguien tiene alguna idea?

Gracias de antemano.

    
pregunta user3193817 07.01.2015 - 11:21

2 respuestas

4

No puede obtener el título del menú usando wp_nav_menu() , necesita obtener el objeto del menú de la siguiente manera:

//Change with the ID of your menu
$menu_ID = 5;
$nav_menu = wp_get_nav_menu_object( $menu_ID );
// then echo the name of the menu
echo $nav_menu->name;

Con el código anterior, puede insertar el nombre del menú en wp_nav_menu() usando el parámetro items_wrap . Por ejemplo:

$menu_ID = 5;
$nav_menu = wp_get_nav_menu_object( $menu_ID );
wp_nav_menu( array(
                 'theme_location'  => 'resources',
                 'container'       => 'div',
                 'container_class' => 'rmm-footer',
                 'items_wrap'      => '<ul><li id="item-id">'.$nav_menu->name.'</li>%3$s</ul>'
             )
);
    
respondido por el cybmeta 07.01.2015 - 11:31
0

Es mejor no confiar en la ID del menú, mi solución resolverá dinámicamente el menú adjunto para la ubicación actual.

1- Primero debemos definir una función que busque el menú en nuestras funciones.php:

function monoprog_get_menu_by_location($location) {
    if(empty($location)) return false;

    $locations = get_nav_menu_locations();
    if(!isset($locations[$location])) return false;

    return get_term( $locations[$location], 'nav_menu' );
}

2- Luego, vamos a mostrar el título del menú que se muestra en cualquier ubicación que queramos:

$menu_obj = monoprog_get_menu_by_location('menufooterleft');
echo "<h3>".esc_html($menu_obj->name)."</h3>";

simplemente reemplaza ' menufooterleft ' con la ubicación registrada en tu tema.

    
respondido por el Chtiwi Malek 08.09.2017 - 03:05

Lea otras preguntas en las etiquetas