PluginProbe
Gutenberg / trunk
Gutenberg vtrunk
24.1.0 24.0.0 23.9.1 23.9.0 23.8.0 23.7.2 23.7.1 23.7.0 23.6.1 23.6.2 23.6.0 23.5.3 23.5.2 23.5.1 23.5.0 23.4.0 23.3.2 23.3.1 23.3.0 23.2.0 23.2.1 23.2.2 23.1.1 23.1.0 23.0.1 All 404 releases
← All changes | lib/global-styles-and-settings.php +33 -4 23.3.2 → trunk View file →
@@ -130,8 +130,22 @@
130 130 return _wp_array_get( $settings, $path, $settings );
131 131 }
132 132
133 133 /**
134 + * Returns CSS media queries for responsive viewport style states.
135 + *
136 + * @param mixed $viewport_settings Viewport settings from theme.json.
137 + * @param array $options Options for generating media queries.
138 + * @return array Responsive media queries.
139 + */
140 +function gutenberg_get_viewport_media_queries( $viewport_settings = null, $options = array() ) {
141 + return WP_Theme_JSON_Gutenberg::get_viewport_media_queries(
142 + $viewport_settings,
143 + $options
144 + );
145 +}
146 +
147 +/**
134 148 * Gets the global styles custom css from theme.json.
135 149 *
136 150 * @deprecated Gutenberg 18.6.0 Use {@see 'gutenberg_get_global_stylesheet'} instead for top-level custom CSS, or {@see 'WP_Theme_JSON_Gutenberg::get_styles_for_block'} for block-level custom CSS.
137 151 *
@@ -337,9 +351,9 @@
337 351 }
338 352 }
339 353
340 354 /**
341 - * Private function to clean the caches used by gutenberg_get_global_settings method.
355 + * Private function to clean the caches used by the theme JSON APIs.
342 356 *
343 357 * @access private
344 358 */
345 359 function _gutenberg_clean_theme_json_caches() {
@@ -346,8 +360,12 @@
346 360 wp_cache_delete( 'wp_theme_has_theme_json', 'theme_json' );
347 361 wp_cache_delete( 'gutenberg_get_global_stylesheet', 'theme_json' );
348 362 wp_cache_delete( 'gutenberg_get_global_settings_custom', 'theme_json' );
349 363 wp_cache_delete( 'gutenberg_get_global_settings_theme', 'theme_json' );
364 + wp_cache_delete( 'gutenberg_get_global_styles_custom', 'theme_json' );
365 + wp_cache_delete( 'gutenberg_get_global_styles_custom_resolved', 'theme_json' );
366 + wp_cache_delete( 'gutenberg_get_global_styles_theme', 'theme_json' );
367 + wp_cache_delete( 'gutenberg_get_global_styles_theme_resolved', 'theme_json' );
350 368 wp_cache_delete( 'gutenberg_get_global_custom_css', 'theme_json' );
351 369 wp_cache_delete( 'gutenberg_get_global_styles_base_custom_css', 'theme_json' );
352 370 WP_Theme_JSON_Resolver_Gutenberg::clean_cached_data();
353 371 }
@@ -392,13 +410,24 @@
392 410 $resolve_variables = isset( $context['transforms'] )
393 411 && is_array( $context['transforms'] )
394 412 && in_array( 'resolve-variables', $context['transforms'], true );
395 413
396 - $merged_data = WP_Theme_JSON_Resolver_Gutenberg::get_merged_data( $origin );
414 + $cache_group = 'theme_json';
415 + $cache_key = 'gutenberg_get_global_styles_' . $origin;
397 416 if ( $resolve_variables ) {
398 - $merged_data = WP_Theme_JSON_Gutenberg::resolve_variables( $merged_data );
417 + $cache_key .= '_resolved';
399 418 }
400 - $styles = $merged_data->get_raw_data()['styles'];
419 + $styles = wp_cache_get( $cache_key, $cache_group );
420 +
421 + if ( false === $styles || WP_DEBUG ) {
422 + $merged_data = WP_Theme_JSON_Resolver_Gutenberg::get_merged_data( $origin );
423 + if ( $resolve_variables ) {
424 + $merged_data = WP_Theme_JSON_Gutenberg::resolve_variables( $merged_data );
425 + }
426 + $styles = $merged_data->get_raw_data()['styles'];
427 + wp_cache_set( $cache_key, $styles, $cache_group );
428 + }
429 +
401 430 return _wp_array_get( $styles, $path, $styles );
402 431 }
403 432
404 433 /**