Make sure Global Styles CPT includes a theme reference #26061
Merged
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.
See conversation #25923 (comment)
This fixes an issue by which themes that don't define a text-domain share and override each other's CPT data.
When creating the CPT for global styles, as the
post_nameidentifier we use the theme text domain as a suffix such aswp-global-styles-[text-domain]. However, the text-domain is not a required field for a theme to work (it is a required file of a theme that wants to be published in the themes directory, though). Valid examples of themes that don't require a text-domain are: child themes that don't add new strings, local themes not distributed through any repository, and/or themes that don't need i18n.In WordPress core, the canonical identifier for a theme is the
stylesheetfield withinWP_Theme($theme->get_stylesheet()). The value of this field is the name of the theme directory within the theme root, which all themes need and is unique by default. In following how core operates, this PR changes the suffix added to the global styles CPT to be thestylesheetfield instead.Considerations
If the text domain of a theme and the name of its directory are different, old user styles stored in the database will be ignored.