diff --git a/src/wp-includes/class-wp-theme-json.php b/src/wp-includes/class-wp-theme-json.php index 9bec104aed38e..e5cd59ca73878 100644 --- a/src/wp-includes/class-wp-theme-json.php +++ b/src/wp-includes/class-wp-theme-json.php @@ -2941,7 +2941,13 @@ static function ( $split_selector ) use ( $clean_style_variation_selector ) { $style_variation_declarations[ $style_variation['selector'] ] = static::compute_style_properties( $style_variation_node, $settings, null, $this->theme_json ); // Process pseudo-selectors for this variation (e.g., :hover, :focus) - $block_name = isset( $block_metadata['name'] ) ? $block_metadata['name'] : ( in_array( 'blocks', $block_metadata['path'], true ) && count( $block_metadata['path'] ) >= 3 ? $block_metadata['path'][2] : null ); + if ( isset( $block_metadata['name'] ) ) { + $block_name = $block_metadata['name']; + } elseif ( in_array( 'blocks', $block_metadata['path'], true ) && count( $block_metadata['path'] ) >= 3 ) { + $block_name = $block_metadata['path'][2]; + } else { + $block_name = null; + } $variation_pseudo_declarations = static::process_pseudo_selectors( $style_variation_node, $style_variation['selector'], $settings, $block_name ); $style_variation_declarations = array_merge( $style_variation_declarations, $variation_pseudo_declarations ); @@ -3030,7 +3036,7 @@ static function ( $pseudo_selector ) use ( $selector ) { // For block pseudo-selectors, we need to get the block data first, then access the pseudo-selector $block_name = $block_metadata['path'][2]; // 'core/button' $block_data = _wp_array_get( $this->theme_json, array( 'styles', 'blocks', $block_name ), array() ); - $pseudo_data = isset( $block_data[ $block_pseudo_selector ] ) ? $block_data[ $block_pseudo_selector ] : array(); + $pseudo_data = $block_data[ $block_pseudo_selector ] ?? array(); $declarations = static::compute_style_properties( $pseudo_data, $settings, null, $this->theme_json, $selector, $use_root_padding ); } else {