it-swarm.com.de

Zeigen Sie den Menünamen mit wp_nav_menu an

Ich habe ein benutzerdefiniertes Menü, das ich mit wp_nav_menu aufrufen kann. Gibt es eine Möglichkeit, den Menünamen in einem h3-Tag vor dem Menü anzuzeigen?

Ex.

<h3>My Menu Name</h3>
<nav>
<ul>
<li>Menu Item 1</li>
<li>Menu Item 2</li>
</ul>
</nav>
15
csi

Wenn Sie den Slug des Menüs kennen, sind die Dinge einfacher, andernfalls können Sie diese Funktion verwenden, um das Menü an einem bestimmten Ort abzurufen.

<?php
function wpse45700_get_menu_by_location( $location ) {
    if( empty($location) ) return false;

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

    $menu_obj = get_term( $locations[$location], 'nav_menu' );

    return $menu_obj;
}
?>

Dann

//if you after the menu the menu with a specific ID / Slug
//$menu_obj =wp_get_nav_menu_object($id_slug_or_name); 

//if you after the menu at a specific location
$menu_obj = wpse45700_get_menu_by_location($location); 

echo "<h3>".esc_html($menu_obj->name)."</h3>";
//Display menu here

Anstatt den HTML-Code zu wiederholen, können Sie ihn auch als Teil des Arguments für das Attribut items in wp_nav_menu übergeben.

So zeigen Sie beispielsweise das Menü an der Position "primär" an:

$location = 'primary';
$menu_obj = wpse45700_get_menu_by_location($location ); 
wp_nav_menu( array('theme_location' => $location, 'items_wrap'=> '<h3>'.esc_html($menu_obj->name).'</h3><ul id=\"%1$s\" class=\"%2$s\">%3$s</ul>') ); 
15
Stephen Harris

ersetzen Sie die ID 4 unten durch die ID Ihres Menüs. Wenn Sie die ID nicht kennen, rufen Sie die Menüseite des Administrators auf. Klicken Sie mit der rechten Maustaste auf die Registerkarte des Menüs, für das Sie den Titel als Echo anzeigen möchten, und überprüfen Sie das Element. Die ID wird im Link als menu = ID aufgeführt.

<?
$_menu_object = wp_get_nav_menu_object( 4 );
$nav_menu_selected_title = $_menu_object->name;
echo $nav_menu_selected_title;
?>
3
tbradley22

stephens Antwort ist gut. aber ich sage es noch einen schritt weiter:

<?php 
$location = 'footer_navigation3';
if (has_nav_menu($location)) :
    $menu_obj = get_menu_by_location($location); 
    wp_nav_menu( array( 
        'theme_location'  => $location,
        'items_wrap'=> '<strong>'.esc_html($menu_obj->name).'</strong><ul id="%1$s" class="%2$s">%3$s</ul>'
    )); 
endif;
?>

vorausgesetzt, Sie haben einen Themenstandort mit dem Namen "footer_navigation3" registriert und diesem ein WP-Menü zugewiesen. Platzieren Sie diesen Code nun an der Stelle, an der Sie Ihr Menü anzeigen möchten.

2
nicmare