diff --git a/packages/block-library/src/navigation/index.php b/packages/block-library/src/navigation/index.php index 6db226fe960fe..6a3ea8646edef 100644 --- a/packages/block-library/src/navigation/index.php +++ b/packages/block-library/src/navigation/index.php @@ -132,6 +132,83 @@ function block_core_navigation_render_submenu_icon() { return ''; } + +/** + * Finds the first non-empty `wp_navigation` Post. + * + * @return WP_Post|null the first non-empty Navigation or null. + */ +function block_core_navigation_get_first_non_empty_navigation() { + // Order and orderby args set to mirror those in `wp_get_nav_menus` + // see: + // - https://github.com/WordPress/wordpress-develop/blob/ba943e113d3b31b121f77a2d30aebe14b047c69d/src/wp-includes/nav-menu.php#L613-L619. + // - https://developer.wordpress.org/reference/classes/wp_query/#order-orderby-parameters. + $navigation_posts = get_posts( + array( + 'post_type' => 'wp_navigation', + 'order' => 'ASC', + 'orderby' => 'name', + 'posts_per_page' => 1, // only the first post. + 's' => '