block_core_navigation_get_menu_items_at_location()
Returns the menu items for a WordPress menu location.
No Hooks.
Returns
Array. Menu items for the location.
Usage
block_core_navigation_get_menu_items_at_location( $location );
- $location(string) (required)
- The menu location.
Changelog
| Since 5.9.0 | Introduced. |
block_core_navigation_get_menu_items_at_location() block core navigation get menu items at location code WP 7.0
function block_core_navigation_get_menu_items_at_location( $location ) {
if ( empty( $location ) ) {
return;
}
// Build menu data. The following approximates the code in
// `wp_nav_menu()` and `gutenberg_output_block_nav_menu`.
// Find the location in the list of locations, returning early if the
// location can't be found.
$locations = get_nav_menu_locations();
if ( ! isset( $locations[ $location ] ) ) {
return;
}
// Get the menu from the location, returning early if there is no
// menu or there was an error.
$menu = wp_get_nav_menu_object( $locations[ $location ] );
if ( ! $menu || is_wp_error( $menu ) ) {
return;
}
$menu_items = wp_get_nav_menu_items( $menu->term_id, array( 'update_post_term_cache' => false ) );
_wp_menu_item_classes_by_context( $menu_items );
return $menu_items;
}