wp_nav_menu를 사용하여 메뉴 이름 표시


17

wp_nav_menu를 사용하여 잘 호출 할 수있는 사용자 정의 메뉴가 있습니다. 메뉴 앞에 h3 태그 안에 메뉴 이름을 표시하는 방법이 있습니까?

전의.

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

답변:


15

메뉴의 슬러그를 알고 있으면 작업이 더 쉬워집니다. 그렇지 않으면이 기능을 사용하여 지정된 위치에 메뉴를 가져올 수 있습니다.

<?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;
}
?>

그때

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

또는 html을 에코하지 않고의 items 속성에 대한 인수의 일부로 HTML을 전달할 수 wp_nav_menu있습니다.

예를 들어, '기본'위치에 메뉴를 표시하려면 다음을 수행하십시오.

$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>') ); 

1
Stephen, 큰 반응에 감사드립니다. 멍청한 놈이지만 html을 인수로 전달하는 코드를 제공 할 수 있습니까? 그것은 모든 것을 해결할 것입니다. 감사!
csi

업데이트 된 답변보기 : D
Stephen Harris

4

아래의 id 4를 메뉴의 id로 바꾸십시오. ID를 모르는 경우 관리자의 메뉴 페이지로 이동하여 제목을 표시하려는 메뉴의 탭을 마우스 오른쪽 단추로 클릭하고 elemenent를 검사하면 링크에 id가 menu = ID로 표시됩니다.

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

2

스티븐의 대답은 좋습니다. 그러나 나는 한 걸음 더 나아갔습니다.

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

"footer_navigation3"이라는 테마 위치를 등록하고 wp 메뉴를 할당했다고 가정합니다. 이제 메뉴를 표시 할 위치에이 코드를 배치하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.