In WordPress 6.1 the navigation block Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. will have a new fallback behavior.
What is the fallback behavior?
When a theme uses a navigation block in a template part, it’s to control where the navigation should visually be located, for the theme’s UI User interface to be consistent, usable, and visually attractive. However, themes developers don’t know beforehand what menus the site has, how many pages, what they’re called and so on.
The fallback behavior is the small heuristics in the navigation block which tries to determine what the block should display by default, when a user activates a theme.
What is the new fall back behavior?
Starting with WordPress 6.1, theme developers and authors can lean on the following fallback behavior of the block:
If the navigation block has inner blocks, it will honor them and display them. If the navigation block is empty, however, then it will initialize the fallback behavior.
The fallback behavior (in both the editor and the front of the site) is:
- If there are no block menus or classic menus, the block will display a list of available pages using the Page List block.
- If there are multiple block menus, the navigation block will display the most recently created block menu.
The key changes can be summarized as follows:
- Improved consistency.
- Page List as default fallback.
- Selecting the most recent block menu.
Consistency: previously the fallback behavior was inconsistent between the fronted of the site and the editor. If a theme used an empty navigation block it would display a list of pages on the front, and an empty block in the editor. Now the behavior is consistent between both; the editor mirrors what visitors see on the frontend.
Defaulting to page list: previously, themes which wanted to default to a page list in the editor usually included a page list inner block within the Navigation block. With this update, this is no longer necessary. The navigation block, if empty, will automatically have consistent front and editor behavior, defaulting to a page list.
Selecting the most recent block menu: This part of the fallback behavior is new. In the event a site has multiple block menus, an empty navigation block will display the most recent one.
Theme developers should keep in mind.
The fallback behavior only affects what the empty navigation block will display. Unless the user edits the navigation block’s default fallback, adding a link, changing a label, converting a page list block to a list of links or selecting another menu, the markup of the template part is not changed.
Default content is still honored.
There is no change to how navigation blocks with inner blocks from theme markup behave. Themes still include inner blocks in the markup in the event they want to showcase a specific situation, for instance a small three links menu, pointing to #, with some restriction on length of link labels – this will continue to work, just like before, rendering the uncontrolled inner blocks both on the front and in the editor.
Props: @get_dave for editing and technical review, @bph for review
#6-1, #block-themes, #dev-notes, #dev-notes-6-1, #navigation-block