-
Notifications
You must be signed in to change notification settings - Fork 4.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Nav block use slug to reference Navigation Menu #45512
Comments
Related Issue about the ultimate goal and why we need slugs #56247 |
Noting that this came up on a WordPress Freelancer meetup as a current big pain point and blocker for using the site editor. |
Thanks for recording this. Let me know if there's anything outside the above recorded reasons as to why this is a blocker. |
This is something we are currently really struggling with, despite general embrace of block themes and the site editor. |
Hi all 👋 Just wanted to share a bit of my personal experience with this. Because of the struggles around using the ID as the connector of Navigation blocks to navigation posts we have actually build a custom version of the navigation block that does exactly what this issue proposes. It uses the After having used that on several client builds there are a few workflow things that I would say I'm sill not really convinced by which make me believe that using the Here are the issues we still run into:
There are some workarounds that we have started to use that do make it less painful but at the end of the day are only light helpers. Mainly we wrap every navigation block inside a template part. That way we can safely update any settings of the navigation block on every environment individually without causing the main template / template part the navigation block is in to get read from the DB. I know that the Navigation block at one point actually did support the concept of From my perspective that is a true and valid issue that I think we could address differently however. What if we for example did something similar to Figma when a font is not installed. When a new theme gets activated we could showcase a similar modal which would allow a user to map their navigation menus to the menu locations of the new theme. |
Thank you for your insight @fabiankaegy. As I understand it the use case you would like to solve for is something similar to the following:
An example I've used in the past which seems to align with this is a menu that needs to be prepared in advance for some upcoming promotion (e.g. Black Friday). The site owner wants to create a custom menu in advance and then be able to swap it out (perhaps even programmatically via WP Cron or something) on demand. This certainly feels like a more advanced use case but one I can recognise as being something folk may need. I believe that if we implement The workflow would be as follows:
I appreciate this is a more cumbersome workflow, but the alternative is to expose potentially complex concepts such as "Navigation Areas" to less experienced users which would require them to keep track of even more information. @mtias provided more context about this here. I think we should try and finalise the work on moving to slugs (which also has value as a standalone task) whilst also utilising Data Views for Navigation Menu CPT management. That way we get all the data manipulation powers of Data Views for free which could allow you to achieve your workflow within the Editor. What do you think? Is there anything I missed? |
This Issue specifically tracks the ongoing effort to use a
slug
to reference a Navigation Menu (wp_navigation
Post) instead of the current postID based setup.This is required because IDs are not consistent across environments. Moreover, it opens the way to improve auto-selection of menus based on location with a site template part hierarchy.
Routes
Currently there are two routes open for exploration:
(Preferred) Key by ID, fetch using existing Data APIs and don't modify REST API
PR: #45443.
This route does not modify the REST API and instead utilises an alternative approach using the existing "collection" endpoint alongside
getEntityRecords
(plural) to retrieve a Navigation Post byslug
.This route was explored due to push back on the attempt to modify the REST API to handle slugs.
Pros:
Cons:
Key by slug and modify REST API to accept slug
PR: #42809.
This route updates the REST API to allow for looking up up menus by
slug
as the unique identifier.Pros:
Cons:
The text was updated successfully, but these errors were encountered: