Ignore unregistered style variations from theme.json
#4554
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Trac ticket https://core.trac.wordpress.org/ticket/58462
Backports WordPress/gutenberg#49807
What?
This PR makes sure unregistered block style variations are ignored before processing any data coming from
theme.json.Why?
theme.jsondataset.How?
By making sure the style variation is not added to the allowed list, unless it's registered for that particular block.
Testing Instructions
WP_DEBUGto true.theme.jsonof TwentyTwentyThree:{ "styles": { "blocks": { "core/quote": { "variations": { "plain": { "color": { "background": "indigo", "text": "gold" } }, "unregistered": { "color": { "background": "red", "text": "blue" } } } } } } }The expected result is that:
wp-block-quote-inline-cssstylesheet in the front-end doesn't have a style rule such as{ background-color: red; color: blue}(note the lack of CSS selector).class-wp-theme-json.phpfor the editors or front. Intrunk, you'll see something like this:Verify that upon updating the colors of the style variation via the global styles sidebar (blocks > quote > style variation plain), the user-provided colors are rendered everywhere (front & editors).
Commit message