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

7 ene 2015, 12:21:01
Vistas: 20.4K
Votos: 6

He estado luchando con esto por un tiempo. Quiero mostrar un menú pero incluir el título del menú sobre la lista del menú. 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 así -

Elemento de Menú 1 Elemento de Menú 2 Elemento de Menú 3

Pero quiero que se muestre así -

TÍTULO Elemento de Menú 1 Elemento de Menú 2 Elemento de Menú 3

¿Alguien tiene alguna idea?

Gracias de antemano.

1
Comentarios

Usa wp_get_nav_menu_name() para obtener el nombre del menú: $name = wp_get_nav_menu_name( 'resources' ); (crédito a @merhawi-fissehaye, https://wordpress.stackexchange.com/a/323653/48203).

Philipp Bammes Philipp Bammes
3 feb 2020 11:38:33
Todas las respuestas a la pregunta 2
1

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

// Cambia por el ID de tu menú
$menu_ID = 5;
$nav_menu = wp_get_nav_menu_object( $menu_ID );
// luego muestra el nombre del menú
echo $nav_menu->name;

Con el código anterior, puedes 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>'
             )
);
7 ene 2015 12:31:54
Comentarios

Si funcionó y respondió a tu pregunta, por favor, marca la respuesta como aceptada.

cybmeta cybmeta
7 ene 2015 12:52:05
0

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

1- Primero necesitamos definir una función que busque el menú en nuestro functions.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 mostramos 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>";

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

8 sept 2017 04:05:37