Chamando o título do menu dentro da função de matriz wp_nav_menu

4

Estou lutando com isso por um tempo. Quero chamar um menu, mas incluo o título do menu acima da lista de menus. O código básico que eu tenho é o seguinte -

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

Isso produz uma lista da seguinte forma -

Item de menu 1 Item de menu 2 Item de Menu 3

Mas eu quero que seja o seguinte -

TITLE Item de menu 1 Item de menu 2 Item de Menu 3

Alguém tem alguma ideia?

Obrigado antecipadamente.

    
por user3193817 07.01.2015 / 11:21

2 respostas

4

Você não pode obter o título do menu usando wp_nav_menu() , você precisa obter o objeto de menu da seguinte forma:

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

Com o código acima, você pode inserir o nome do menu no parâmetro wp_nav_menu() using items_wrap . Por exemplo:

$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>'
             )
);
    
por cybmeta 07.01.2015 / 11:31
0

É melhor não confiar no ID do menu, minha solução resolverá dinamicamente o menu anexado para a localização atual.

1- Primeiro precisamos definir uma função que procure por menu em nossas funções.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- Depois vamos exibir o título do menu exibido em qualquer local que quisermos:

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

substitua apenas menufooterleft 'pela localização registada no seu tema.

    
por Chtiwi Malek 08.09.2017 / 03:05

Tags