0
如何檢查菜單是否已分配到菜單位置。讓我直接得知:檢查菜單是否分配了位置
我得到了所有使用wp_get_nav_menus()
創建的菜單,在獲得菜單後,我使用wp_get_nav_menu_items()
獲取了它們的項目。
所以我得到的是這樣的:
主菜單
菜單項目1
菜單項2
菜單項3
但現在我要檢查,如果主菜單有分配的位置,如果未分配到某個位置,則不要打印它。
希望有人能幫助我。
如何檢查菜單是否已分配到菜單位置。讓我直接得知:檢查菜單是否分配了位置
我得到了所有使用wp_get_nav_menus()
創建的菜單,在獲得菜單後,我使用wp_get_nav_menu_items()
獲取了它們的項目。
所以我得到的是這樣的:
主菜單
菜單項目1
菜單項2
菜單項3
但現在我要檢查,如果主菜單有分配的位置,如果未分配到某個位置,則不要打印它。
希望有人能幫助我。
您可以使用get_nav_menu_locations()
獲取已註冊的菜單位置數組以及分配給這些位置的菜單。
然後,您只需在陣列中檢查您示例中的Primary Menu
的ID。如果該值存在關鍵字,則它具有分配的位置。
實施例:
$nav_menus = wp_get_nav_menus();
$menu_locations = get_nav_menu_locations();
/**
* Validate here... skipping for the purpose of answering the
* question at hand. Would be a good idea to make sure the functions
* above returned the values we were expecting.
*/
// Here I'm guessing you're simply looping through menus.
foreach ((array) $nav_menus as $nav_menu) {
/**
* array_search will tell us if the menu's 'term_id' property
* matches any of the values in the locations array. In actual
* fact it gives us the key but that's not necessary here.
*/
if (array_search($nav_menu->term_id, $menu_locations)) {
// menu has a location - output here...
}
}
參考文獻:https://developer.wordpress.org/reference/functions/get_nav_menu_locations/