-
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
Navigation Link Block: Variations for post types may not contain all post types #53826
Comments
As mentioned in the recentl Core Editor chat (sign up required) I would be happy to support @gaambo with contributing PRs to resolve these issues. |
@getdave I created a PR. Looking forward to your feedback. I went with the first solution, which registers the variations on the server side in an additional init hooked function. It runs on priority 1000. Also, I'm not sure how to add e2e tests - never written something like that and looking at the others I'm not sure how to add the custom post type into the snapshot. |
Hi, |
@gaambo Thank you for all your work on this. It's a great addition to WordPress. |
Description
Similar to #52569 the navigiation link block creates a variation for all post types. But the hook to check for public post types (especially those with
show_in_nav_menus
set to true) is run oninit
with a default priority of 10.It's safe to asume, that this will run before many plugins will have registered their custom post types, because the core init hook is added earlier and 10 is the default priority (so many developers will register it on 10 as well).
File:
gutenberg/packages/block-library/src/navigation-link/index.php
Line 371 in 16dcc04
Proposed solution:
register_block_core_navigation_link
on a priority later than 10 (eg 100)Split the function and add variations add a later point via PHP(not possible because server side version to register block variations is missing)All other core blocks are registered on priority 10, so I think it would be a bit odd to run the register function for only this block on a later priority. Also of course we can't be 100% sure if on priority 100 all custom post types are already registered (since developers also can use later priorities). So I guess I actually favor solution 2. Is there precedent for any solution like this?
See also discussion in #52569
My attention was brought to this bug by @kyleakelly@cosocial.ca.
Step-by-step reproduction instructions
Negative test:
Important: Set the
item_link
label or the block variation is calledPost Link
.2. Go into site-editor and add a navigation block
3. try to search for a block named like the custom taxonomy (eg "Product Link").
4. Block is not available, only the default "Post Link" and "Pages Link" will be availab.e
Positive test:
Important: Set the
item_link
label or the block variation is calledPost Link
.Important: change
add_action
priority to something lower than 10 (eg 9)2. Go into site-editor and add a navigation block
3. try to search for a block named like the custom taxonomy (eg "Product Link").
4. Block is available
Screenshots, screen recording, code snippet
No response
Environment info
Please confirm that you have searched existing issues in the repo.
Yes
Please confirm that you have tested with all plugins deactivated except Gutenberg.
Yes
The text was updated successfully, but these errors were encountered: