PluginProbe
Gutenberg / 24.1.0
Gutenberg v24.1.0
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.6.2 → 24.1.0 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 /**