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/block-supports/states.php +14 -4 23.9.0 → trunk View file →
@@ -526,8 +526,22 @@
526 526 return $block_content;
527 527 }
528 528
529 529 $block_name = $block['blockName'];
530 +
531 + /*
532 + * Every CSS rule this function can produce is keyed off the block's `style`
533 + * attribute. Without it there is nothing to generate, so bail before doing
534 + * any of the lookups below — this runs for every block on every request.
535 + */
536 + $raw_style = $block['attrs']['style'] ?? array();
537 + if ( empty( $raw_style ) || ! is_array( $raw_style ) ) {
538 + return $block_content;
539 + }
540 +
541 + // Keep the existing block registry lookup here.
542 + $style = gutenberg_resolve_style_state_aliases( $raw_style, $block_name );
543 +
530 544 $block_type = WP_Block_Type_Registry::get_instance()->get_registered( $block_name );
531 545 if ( ! $block_type ) {
532 546 return $block_content;
533 547 }
@@ -532,12 +546,8 @@
532 546 return $block_content;
533 547 }
534 548
535 549 $supported_pseudo_states = WP_Theme_JSON_Gutenberg::VALID_BLOCK_PSEUDO_SELECTORS[ $block_name ] ?? array();
536 - $style = gutenberg_resolve_style_state_aliases(
537 - $block['attrs']['style'] ?? array(),
538 - $block_name
539 - );
540 550 $css_rules = array();
541 551 $viewport_settings = gutenberg_get_global_settings( array( 'viewport' ) );
542 552 $responsive_media_queries = WP_Theme_JSON_Gutenberg::get_viewport_media_queries( $viewport_settings );
543 553