如何检查菜单是否已分配到菜单位置。让我直截了当地说:
我使用wp_get_nav_menus()
创建了所有菜单,在我获得菜单后,我使用wp_get_nav_menu_items()
获取了他们的项目。
所以我得到这样的东西:
主菜单
菜单项1
菜单项2
菜单项3
但现在我想检查主菜单是否分配了位置,如果没有分配到某个位置,则不要打印它。
希望有人可以帮助我。
答案 0 :(得分:1)
您可以使用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/