[wp-trac] [WordPress Trac] #56901: WP_Theme_JSON_Resolver::get_user_data_from_wp_global_styles is incorrectly cached.

WordPress Trac noreply at wordpress.org
Tue Oct 25 01:10:42 UTC 2022


#56901: WP_Theme_JSON_Resolver::get_user_data_from_wp_global_styles is incorrectly
cached.
---------------------------+------------------------------
 Reporter:  peterwilsoncc  |       Owner:  (none)
     Type:  defect (bug)   |      Status:  new
 Priority:  normal         |   Milestone:  Awaiting Review
Component:  Themes         |     Version:
 Severity:  normal         |  Resolution:
 Keywords:                 |     Focuses:
---------------------------+------------------------------
Description changed by peterwilsoncc:

Old description:

> This ticket is for tacking the WordPress-Develop changes required for
> [https://github.com/WordPress/gutenberg/issues/44946
> WordPress/gutenberg#44946].
>
> From the original report:
>
> > When importing demo content using WP 6.1 styles are not imported
> correctly although the same works fine in WP 6.0.2.
> >
> > Imported content displays the theme's default colors and styling
> instead of the styling set for that particular demo. However, in the
> "Site Editor" styles are correctly displayed. Sometimes when I exit the
> Site Editor the styles are then correctly displayed in the front end as
> well, but sometimes it takes a few tries.
> >
> > This issue happens with the WordPress default importer as well as our
> theme's built-in import system.
>
> Please see the Gutenberg repo's ticket for further details and
> discussion.
>
> During investigation, it was discovered to be a cache invalidation issue.
> The caching within the `get_user_data_from_wp_global_styles()` method was
> not cleared when new custom styles posts were created.
>
> The [https://github.com/WordPress/wordpress-develop/pull/3517 linked pull
> request] switches the caching to use the lower-level caching provided by
> `WP_Query`. This provides two advantages:
>
> * removes duplicate caching of the same data
> * cache invalidation is managed at the lower level
>
> **Committers** Please review
> [https://github.com/WordPress/gutenberg/issues/44946
> WordPress/gutenberg#44946] when generating the props list for this
> ticket.

New description:

 This ticket is for tacking the WordPress-Develop changes required for
 [https://github.com/WordPress/gutenberg/issues/44946
 WordPress/gutenberg#44946].

 From the original report:

 > When importing demo content using WP 6.1 styles are not imported
 correctly although the same works fine in WP 6.0.2.
 >
 > Imported content displays the theme's default colors and styling instead
 of the styling set for that particular demo. However, in the "Site Editor"
 styles are correctly displayed. Sometimes when I exit the Site Editor the
 styles are then correctly displayed in the front end as well, but
 sometimes it takes a few tries.
 >
 > This issue happens with the WordPress default importer as well as our
 theme's built-in import system.

 Please see the Gutenberg repo's ticket for further details and discussion.

 During investigation, it was discovered to be a cache invalidation issue.
 The caching within the `get_user_data_from_wp_global_styles()` method was
 not cleared when new custom styles posts were created.

 The [https://github.com/WordPress/wordpress-develop/pull/3517 linked pull
 request] switches the caching to use the lower-level caching provided by
 `WP_Query`. This provides two advantages:

 * removes duplicate caching of the same data
 * cache invalidation is managed at the lower level

 As noted by @spacedmonkey on the ticket: this issue has been around since
 the method was introduced but the switch from object caching to a
 transient in 6.1 means that it will affect all sites in 6.1 rather than
 only those with a persistent object cache.

 **Committers** Please review
 [https://github.com/WordPress/gutenberg/issues/44946
 WordPress/gutenberg#44946] when generating the props list for this ticket.

--

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/56901#comment:1>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list