web-dev-qa-db-ja.com

Theme_locationからメニューオブジェクトを取得する

テーマの場所の引数からメニューオブジェクトを取得したいのですが。

私の目的はメニュー名とその項目名、URLと説明を別々に出力することです。

私が探しているものの例:

$menu = get_menu('nav-menu'); //get menu from its theme location
echo $menu->name; //displays the menu name
foreach($menu->items as $item){
    echo '<a href="'.$item->link'">'.$item->name.'</a>'; //displays a link to the item destination
    echo $item->description; //displays the item description
}
6
Morhaus

get_nav_menu_locations()および get_term() を使用して、 このメソッドは探しているものと同じように見えます

$theme_locations = get_nav_menu_locations();

$menu_obj = get_term( $theme_locations[$theme_location], 'nav_menu' );

$menu_name = $menu_obj->name;

(カスタム関数にまとめられたものすべてについては、リンクを参照してください。上記のコードでは、関連するWP関数が強調表示されています。)

13
Chip Bennett

それとも1行で必要な場合は、それをコピーして "change-this-location-slug"を私たちのものに置き換えてください。

$string = get_term(get_nav_menu_locations()['change-this-location-slug'], 'nav_menu')->name;
3
user2912903