diff --git a/packages/block-library/src/navigation/index.php b/packages/block-library/src/navigation/index.php index 6a3ea8646edef..40dea98a1f0d8 100644 --- a/packages/block-library/src/navigation/index.php +++ b/packages/block-library/src/navigation/index.php @@ -187,6 +187,7 @@ function( $block ) { * @return array the array of blocks to be used as a fallback. */ function block_core_navigation_get_fallback_blocks() { + // Default to a list of Pages. $fallback_blocks = array( array( @@ -206,7 +207,7 @@ function block_core_navigation_get_fallback_blocks() { $fallback_blocks = ! empty( $maybe_fallback ) ? $maybe_fallback : $fallback_blocks; } - return $fallback_blocks; + return apply_filters( 'block_core_navigation_render_fallback', $fallback_blocks ); } /** @@ -298,7 +299,13 @@ function render_block_core_navigation( $attributes, $content, $block ) { $fallback_blocks = block_core_navigation_get_fallback_blocks(); + // Fallback my have been filtered so do basic test for validity. + if ( empty( $fallback_blocks ) || ! is_array( $fallback_blocks ) ) { + return ''; + } + $inner_blocks = new WP_Block_List( $fallback_blocks, $attributes ); + } // Restore legacy classnames for submenu positioning.