Commit 6a9a061a04 for wordpress.org

commit 6a9a061a04dc168a7a10ccf5b0e37983c100ee63
Author: Weston Ruter <weston@xwp.co>
Date:   Mon Jan 5 04:52:31 2026 +0000

    Code Modernization: Block Supports: Use null coalescing operator instead of `isset()` ternaries.

    Developed as a subset of https://github.com/WordPress/wordpress-develop/pull/10654
    Initially developed in https://github.com/WordPress/wordpress-develop/pull/4886

    Follow-up to [61429], [61424], [61404], [61403].

    Props costdev, westonruter.
    See #58874, #63430.

    Built from https://develop.svn.wordpress.org/trunk@61430


    git-svn-id: http://core.svn.wordpress.org/trunk@60742 1a063a9b-81f0-0310-95a4-ce76da25c4cd

diff --git a/wp-includes/block-supports/border.php b/wp-includes/block-supports/border.php
index a11c099d9e..89a3ef175e 100644
--- a/wp-includes/block-supports/border.php
+++ b/wp-includes/block-supports/border.php
@@ -102,14 +102,14 @@ function wp_apply_border_support( $block_type, $block_attributes ) {
 		! wp_should_skip_block_supports_serialization( $block_type, '__experimentalBorder', 'color' )
 	) {
 		$preset_border_color          = array_key_exists( 'borderColor', $block_attributes ) ? "var:preset|color|{$block_attributes['borderColor']}" : null;
-		$custom_border_color          = isset( $block_attributes['style']['border']['color'] ) ? $block_attributes['style']['border']['color'] : null;
+		$custom_border_color          = $block_attributes['style']['border']['color'] ?? null;
 		$border_block_styles['color'] = $preset_border_color ? $preset_border_color : $custom_border_color;
 	}

 	// Generates styles for individual border sides.
 	if ( $has_border_color_support || $has_border_width_support ) {
 		foreach ( array( 'top', 'right', 'bottom', 'left' ) as $side ) {
-			$border                       = isset( $block_attributes['style']['border'][ $side ] ) ? $block_attributes['style']['border'][ $side ] : null;
+			$border                       = $block_attributes['style']['border'][ $side ] ?? null;
 			$border_side_values           = array(
 				'width' => isset( $border['width'] ) && ! wp_should_skip_block_supports_serialization( $block_type, '__experimentalBorder', 'width' ) ? $border['width'] : null,
 				'color' => isset( $border['color'] ) && ! wp_should_skip_block_supports_serialization( $block_type, '__experimentalBorder', 'color' ) ? $border['color'] : null,
@@ -153,9 +153,7 @@ function wp_apply_border_support( $block_type, $block_attributes ) {
 function wp_has_border_feature_support( $block_type, $feature, $default_value = false ) {
 	// Check if all border support features have been opted into via `"__experimentalBorder": true`.
 	if ( $block_type instanceof WP_Block_Type ) {
-		$block_type_supports_border = isset( $block_type->supports['__experimentalBorder'] )
-			? $block_type->supports['__experimentalBorder']
-			: $default_value;
+		$block_type_supports_border = $block_type->supports['__experimentalBorder'] ?? $default_value;
 		if ( true === $block_type_supports_border ) {
 			return true;
 		}
diff --git a/wp-includes/block-supports/colors.php b/wp-includes/block-supports/colors.php
index f14b718b88..5d55f2f972 100644
--- a/wp-includes/block-supports/colors.php
+++ b/wp-includes/block-supports/colors.php
@@ -18,7 +18,7 @@
 function wp_register_colors_support( $block_type ) {
 	$color_support = false;
 	if ( $block_type instanceof WP_Block_Type ) {
-		$color_support = isset( $block_type->supports['color'] ) ? $block_type->supports['color'] : false;
+		$color_support = $block_type->supports['color'] ?? false;
 	}
 	$has_text_colors_support       = true === $color_support ||
 		( isset( $color_support['text'] ) && $color_support['text'] ) ||
@@ -26,10 +26,10 @@ function wp_register_colors_support( $block_type ) {
 	$has_background_colors_support = true === $color_support ||
 		( isset( $color_support['background'] ) && $color_support['background'] ) ||
 		( is_array( $color_support ) && ! isset( $color_support['background'] ) );
-	$has_gradients_support         = isset( $color_support['gradients'] ) ? $color_support['gradients'] : false;
-	$has_link_colors_support       = isset( $color_support['link'] ) ? $color_support['link'] : false;
-	$has_button_colors_support     = isset( $color_support['button'] ) ? $color_support['button'] : false;
-	$has_heading_colors_support    = isset( $color_support['heading'] ) ? $color_support['heading'] : false;
+	$has_gradients_support         = $color_support['gradients'] ?? false;
+	$has_link_colors_support       = $color_support['link'] ?? false;
+	$has_button_colors_support     = $color_support['button'] ?? false;
+	$has_heading_colors_support    = $color_support['heading'] ?? false;
 	$has_color_support             = $has_text_colors_support ||
 		$has_background_colors_support ||
 		$has_gradients_support ||
@@ -81,7 +81,7 @@ function wp_register_colors_support( $block_type ) {
  * @return array Colors CSS classes and inline styles.
  */
 function wp_apply_colors_support( $block_type, $block_attributes ) {
-	$color_support = isset( $block_type->supports['color'] ) ? $block_type->supports['color'] : false;
+	$color_support = $block_type->supports['color'] ?? false;

 	if (
 		is_array( $color_support ) &&
@@ -96,27 +96,27 @@ function wp_apply_colors_support( $block_type, $block_attributes ) {
 	$has_background_colors_support = true === $color_support ||
 		( isset( $color_support['background'] ) && $color_support['background'] ) ||
 		( is_array( $color_support ) && ! isset( $color_support['background'] ) );
-	$has_gradients_support         = isset( $color_support['gradients'] ) ? $color_support['gradients'] : false;
+	$has_gradients_support         = $color_support['gradients'] ?? false;
 	$color_block_styles            = array();

 	// Text colors.
 	if ( $has_text_colors_support && ! wp_should_skip_block_supports_serialization( $block_type, 'color', 'text' ) ) {
 		$preset_text_color          = array_key_exists( 'textColor', $block_attributes ) ? "var:preset|color|{$block_attributes['textColor']}" : null;
-		$custom_text_color          = isset( $block_attributes['style']['color']['text'] ) ? $block_attributes['style']['color']['text'] : null;
+		$custom_text_color          = $block_attributes['style']['color']['text'] ?? null;
 		$color_block_styles['text'] = $preset_text_color ? $preset_text_color : $custom_text_color;
 	}

 	// Background colors.
 	if ( $has_background_colors_support && ! wp_should_skip_block_supports_serialization( $block_type, 'color', 'background' ) ) {
 		$preset_background_color          = array_key_exists( 'backgroundColor', $block_attributes ) ? "var:preset|color|{$block_attributes['backgroundColor']}" : null;
-		$custom_background_color          = isset( $block_attributes['style']['color']['background'] ) ? $block_attributes['style']['color']['background'] : null;
+		$custom_background_color          = $block_attributes['style']['color']['background'] ?? null;
 		$color_block_styles['background'] = $preset_background_color ? $preset_background_color : $custom_background_color;
 	}

 	// Gradients.
 	if ( $has_gradients_support && ! wp_should_skip_block_supports_serialization( $block_type, 'color', 'gradients' ) ) {
 		$preset_gradient_color          = array_key_exists( 'gradient', $block_attributes ) ? "var:preset|gradient|{$block_attributes['gradient']}" : null;
-		$custom_gradient_color          = isset( $block_attributes['style']['color']['gradient'] ) ? $block_attributes['style']['color']['gradient'] : null;
+		$custom_gradient_color          = $block_attributes['style']['color']['gradient'] ?? null;
 		$color_block_styles['gradient'] = $preset_gradient_color ? $preset_gradient_color : $custom_gradient_color;
 	}

diff --git a/wp-includes/block-supports/dimensions.php b/wp-includes/block-supports/dimensions.php
index da68f187c3..768fa5d14a 100644
--- a/wp-includes/block-supports/dimensions.php
+++ b/wp-includes/block-supports/dimensions.php
@@ -60,7 +60,7 @@ function wp_apply_dimensions_support( $block_type, $block_attributes ) {
 	// Width support to be added in near future.

 	$has_min_height_support = block_has_support( $block_type, array( 'dimensions', 'minHeight' ), false );
-	$block_styles           = isset( $block_attributes['style'] ) ? $block_attributes['style'] : null;
+	$block_styles           = $block_attributes['style'] ?? null;

 	if ( ! $block_styles ) {
 		return $attributes;
@@ -70,9 +70,7 @@ function wp_apply_dimensions_support( $block_type, $block_attributes ) {
 	$dimensions_block_styles              = array();
 	$dimensions_block_styles['minHeight'] = null;
 	if ( $has_min_height_support && ! $skip_min_height ) {
-		$dimensions_block_styles['minHeight'] = isset( $block_styles['dimensions']['minHeight'] )
-			? $block_styles['dimensions']['minHeight']
-			: null;
+		$dimensions_block_styles['minHeight'] = $block_styles['dimensions']['minHeight'] ?? null;
 	}
 	$styles = wp_style_engine_get_styles( array( 'dimensions' => $dimensions_block_styles ) );

diff --git a/wp-includes/block-supports/elements.php b/wp-includes/block-supports/elements.php
index c699b5badb..1c54bcd556 100644
--- a/wp-includes/block-supports/elements.php
+++ b/wp-includes/block-supports/elements.php
@@ -36,7 +36,7 @@ function wp_should_add_elements_class_name( $block, $options ) {

 	$element_color_properties = array(
 		'button'  => array(
-			'skip'  => isset( $options['button']['skip'] ) ? $options['button']['skip'] : false,
+			'skip'  => $options['button']['skip'] ?? false,
 			'paths' => array(
 				array( 'button', 'color', 'text' ),
 				array( 'button', 'color', 'background' ),
@@ -44,14 +44,14 @@ function wp_should_add_elements_class_name( $block, $options ) {
 			),
 		),
 		'link'    => array(
-			'skip'  => isset( $options['link']['skip'] ) ? $options['link']['skip'] : false,
+			'skip'  => $options['link']['skip'] ?? false,
 			'paths' => array(
 				array( 'link', 'color', 'text' ),
 				array( 'link', ':hover', 'color', 'text' ),
 			),
 		),
 		'heading' => array(
-			'skip'  => isset( $options['heading']['skip'] ) ? $options['heading']['skip'] : false,
+			'skip'  => $options['heading']['skip'] ?? false,
 			'paths' => array(
 				array( 'heading', 'color', 'text' ),
 				array( 'heading', 'color', 'background' ),
@@ -130,7 +130,7 @@ function wp_render_elements_support_styles( $parsed_block ) {
 	}

 	$block_type           = WP_Block_Type_Registry::get_instance()->get_registered( $parsed_block['blockName'] );
-	$element_block_styles = isset( $parsed_block['attrs']['style']['elements'] ) ? $parsed_block['attrs']['style']['elements'] : null;
+	$element_block_styles = $parsed_block['attrs']['style']['elements'] ?? null;

 	if ( ! $element_block_styles ) {
 		return $parsed_block;
@@ -185,7 +185,7 @@ function wp_render_elements_support_styles( $parsed_block ) {
 			continue;
 		}

-		$element_style_object = isset( $element_block_styles[ $element_type ] ) ? $element_block_styles[ $element_type ] : null;
+		$element_style_object = $element_block_styles[ $element_type ] ?? null;

 		// Process primary element type styles.
 		if ( $element_style_object ) {
@@ -211,9 +211,7 @@ function wp_render_elements_support_styles( $parsed_block ) {
 		// Process related elements e.g. h1-h6 for headings.
 		if ( isset( $element_config['elements'] ) ) {
 			foreach ( $element_config['elements'] as $element ) {
-				$element_style_object = isset( $element_block_styles[ $element ] )
-					? $element_block_styles[ $element ]
-					: null;
+				$element_style_object = $element_block_styles[ $element ] ?? null;

 				if ( $element_style_object ) {
 					wp_style_engine_get_styles(
diff --git a/wp-includes/block-supports/layout.php b/wp-includes/block-supports/layout.php
index 63eb384e77..fb46b78ab8 100644
--- a/wp-includes/block-supports/layout.php
+++ b/wp-includes/block-supports/layout.php
@@ -238,13 +238,13 @@ function wp_register_layout_support( $block_type ) {
  * @return string CSS styles on success. Else, empty string.
  */
 function wp_get_layout_style( $selector, $layout, $has_block_gap_support = false, $gap_value = null, $should_skip_gap_serialization = false, $fallback_gap_value = '0.5em', $block_spacing = null ) {
-	$layout_type   = isset( $layout['type'] ) ? $layout['type'] : 'default';
+	$layout_type   = $layout['type'] ?? 'default';
 	$layout_styles = array();

 	if ( 'default' === $layout_type ) {
 		if ( $has_block_gap_support ) {
 			if ( is_array( $gap_value ) ) {
-				$gap_value = isset( $gap_value['top'] ) ? $gap_value['top'] : null;
+				$gap_value = $gap_value['top'] ?? null;
 			}
 			if ( null !== $gap_value && ! $should_skip_gap_serialization ) {
 				// Get spacing CSS variable from preset value if provided.
@@ -274,9 +274,9 @@ function wp_get_layout_style( $selector, $layout, $has_block_gap_support = false
 			}
 		}
 	} elseif ( 'constrained' === $layout_type ) {
-		$content_size    = isset( $layout['contentSize'] ) ? $layout['contentSize'] : '';
-		$wide_size       = isset( $layout['wideSize'] ) ? $layout['wideSize'] : '';
-		$justify_content = isset( $layout['justifyContent'] ) ? $layout['justifyContent'] : 'center';
+		$content_size    = $layout['contentSize'] ?? '';
+		$wide_size       = $layout['wideSize'] ?? '';
+		$justify_content = $layout['justifyContent'] ?? 'center';

 		$all_max_width_value  = $content_size ? $content_size : $wide_size;
 		$wide_max_width_value = $wide_size ? $wide_size : $content_size;
@@ -361,7 +361,7 @@ function wp_get_layout_style( $selector, $layout, $has_block_gap_support = false

 		if ( $has_block_gap_support ) {
 			if ( is_array( $gap_value ) ) {
-				$gap_value = isset( $gap_value['top'] ) ? $gap_value['top'] : null;
+				$gap_value = $gap_value['top'] ?? null;
 			}
 			if ( null !== $gap_value && ! $should_skip_gap_serialization ) {
 				// Get spacing CSS variable from preset value if provided.
@@ -391,7 +391,7 @@ function wp_get_layout_style( $selector, $layout, $has_block_gap_support = false
 			}
 		}
 	} elseif ( 'flex' === $layout_type ) {
-		$layout_orientation = isset( $layout['orientation'] ) ? $layout['orientation'] : 'horizontal';
+		$layout_orientation = $layout['orientation'] ?? 'horizontal';

 		$justify_content_options = array(
 			'left'   => 'flex-start',
@@ -427,7 +427,7 @@ function wp_get_layout_style( $selector, $layout, $has_block_gap_support = false
 			foreach ( $gap_sides as $gap_side ) {
 				$process_value = $gap_value;
 				if ( is_array( $gap_value ) ) {
-					$process_value = isset( $gap_value[ $gap_side ] ) ? $gap_value[ $gap_side ] : $fallback_gap_value;
+					$process_value = $gap_value[ $gap_side ] ?? $fallback_gap_value;
 				}
 				// Get spacing CSS variable from preset value if provided.
 				if ( is_string( $process_value ) && str_contains( $process_value, 'var:preset|spacing|' ) ) {
@@ -514,7 +514,7 @@ function wp_get_layout_style( $selector, $layout, $has_block_gap_support = false
 			foreach ( $gap_sides as $gap_side ) {
 				$process_value = $gap_value;
 				if ( is_array( $gap_value ) ) {
-					$process_value = isset( $gap_value[ $gap_side ] ) ? $gap_value[ $gap_side ] : $fallback_gap_value;
+					$process_value = $gap_value[ $gap_side ] ?? $fallback_gap_value;
 				}
 				// Get spacing CSS variable from preset value if provided.
 				if ( is_string( $process_value ) && str_contains( $process_value, 'var:preset|spacing|' ) ) {
@@ -570,7 +570,7 @@ function wp_get_layout_style( $selector, $layout, $has_block_gap_support = false
 function wp_render_layout_support_flag( $block_content, $block ) {
 	$block_type            = WP_Block_Type_Registry::get_instance()->get_registered( $block['blockName'] );
 	$block_supports_layout = block_has_support( $block_type, 'layout', false ) || block_has_support( $block_type, '__experimentalLayout', false );
-	$child_layout          = isset( $block['attrs']['style']['layout'] ) ? $block['attrs']['style']['layout'] : null;
+	$child_layout          = $block['attrs']['style']['layout'] ?? null;

 	if ( ! $block_supports_layout && ! $child_layout ) {
 		return $block_content;
@@ -610,7 +610,7 @@ function wp_render_layout_support_flag( $block_content, $block ) {
 		$child_layout_declarations = array();
 		$child_layout_styles       = array();

-		$self_stretch = isset( $child_layout['selfStretch'] ) ? $child_layout['selfStretch'] : null;
+		$self_stretch = $child_layout['selfStretch'] ?? null;

 		if ( 'fixed' === $self_stretch && isset( $child_layout['flexSize'] ) ) {
 			$child_layout_declarations['flex-basis'] = $child_layout['flexSize'];
@@ -640,7 +640,7 @@ function wp_render_layout_support_flag( $block_content, $block ) {
 		 */
 		if ( isset( $child_layout['columnSpan'] ) && ( isset( $block['parentLayout']['minimumColumnWidth'] ) || ! isset( $block['parentLayout']['columnCount'] ) ) ) {
 			$column_span_number  = floatval( $child_layout['columnSpan'] );
-			$parent_column_width = isset( $block['parentLayout']['minimumColumnWidth'] ) ? $block['parentLayout']['minimumColumnWidth'] : '12rem';
+			$parent_column_width = $block['parentLayout']['minimumColumnWidth'] ?? '12rem';
 			$parent_column_value = floatval( $parent_column_width );
 			$parent_column_unit  = explode( $parent_column_value, $parent_column_width );

@@ -719,15 +719,11 @@ function wp_render_layout_support_flag( $block_content, $block ) {
 	}

 	$global_settings = wp_get_global_settings();
-	$fallback_layout = isset( $block_type->supports['layout']['default'] )
-		? $block_type->supports['layout']['default']
-		: array();
+	$fallback_layout = $block_type->supports['layout']['default'] ?? array();
 	if ( empty( $fallback_layout ) ) {
-		$fallback_layout = isset( $block_type->supports['__experimentalLayout']['default'] )
-			? $block_type->supports['__experimentalLayout']['default']
-			: array();
+		$fallback_layout = $block_type->supports['__experimentalLayout']['default'] ?? array();
 	}
-	$used_layout = isset( $block['attrs']['layout'] ) ? $block['attrs']['layout'] : $fallback_layout;
+	$used_layout = $block['attrs']['layout'] ?? $fallback_layout;

 	$class_names        = array();
 	$layout_definitions = wp_get_layout_definitions();
@@ -737,9 +733,7 @@ function wp_render_layout_support_flag( $block_content, $block ) {
 		$used_layout['type'] = 'constrained';
 	}

-	$root_padding_aware_alignments = isset( $global_settings['useRootPaddingAwareAlignments'] )
-		? $global_settings['useRootPaddingAwareAlignments']
-		: false;
+	$root_padding_aware_alignments = $global_settings['useRootPaddingAwareAlignments'] ?? false;

 	if (
 		$root_padding_aware_alignments &&
@@ -769,13 +763,9 @@ function wp_render_layout_support_flag( $block_content, $block ) {

 	// Get classname for layout type.
 	if ( isset( $used_layout['type'] ) ) {
-		$layout_classname = isset( $layout_definitions[ $used_layout['type'] ]['className'] )
-			? $layout_definitions[ $used_layout['type'] ]['className']
-			: '';
+		$layout_classname = $layout_definitions[ $used_layout['type'] ]['className'] ?? '';
 	} else {
-		$layout_classname = isset( $layout_definitions['default']['className'] )
-			? $layout_definitions['default']['className']
-			: '';
+		$layout_classname = $layout_definitions['default']['className'] ?? '';
 	}

 	if ( $layout_classname && is_string( $layout_classname ) ) {
@@ -788,9 +778,7 @@ function wp_render_layout_support_flag( $block_content, $block ) {
 	 */
 	if ( ! current_theme_supports( 'disable-layout-styles' ) ) {

-		$gap_value = isset( $block['attrs']['style']['spacing']['blockGap'] )
-			? $block['attrs']['style']['spacing']['blockGap']
-			: null;
+		$gap_value = $block['attrs']['style']['spacing']['blockGap'] ?? null;
 		/*
 		 * Skip if gap value contains unsupported characters.
 		 * Regex for CSS value borrowed from `safecss_filter_attr`, and used here
@@ -804,12 +792,8 @@ function wp_render_layout_support_flag( $block_content, $block ) {
 			$gap_value = $gap_value && preg_match( '%[\\\(&=}]|/\*%', $gap_value ) ? null : $gap_value;
 		}

-		$fallback_gap_value = isset( $block_type->supports['spacing']['blockGap']['__experimentalDefault'] )
-			? $block_type->supports['spacing']['blockGap']['__experimentalDefault']
-			: '0.5em';
-		$block_spacing      = isset( $block['attrs']['style']['spacing'] )
-			? $block['attrs']['style']['spacing']
-			: null;
+		$fallback_gap_value = $block_type->supports['spacing']['blockGap']['__experimentalDefault'] ?? '0.5em';
+		$block_spacing      = $block['attrs']['style']['spacing'] ?? null;

 		/*
 		 * If a block's block.json skips serialization for spacing or spacing.blockGap,
@@ -817,9 +801,7 @@ function wp_render_layout_support_flag( $block_content, $block ) {
 		 */
 		$should_skip_gap_serialization = wp_should_skip_block_supports_serialization( $block_type, 'spacing', 'blockGap' );

-		$block_gap             = isset( $global_settings['spacing']['blockGap'] )
-			? $global_settings['spacing']['blockGap']
-			: null;
+		$block_gap             = $global_settings['spacing']['blockGap'] ?? null;
 		$has_block_gap_support = isset( $block_gap );

 		/*
@@ -917,7 +899,7 @@ function wp_render_layout_support_flag( $block_content, $block ) {
 	 * @var string|null
 	 */
 	$inner_block_wrapper_classes = null;
-	$first_chunk                 = isset( $block['innerContent'][0] ) ? $block['innerContent'][0] : null;
+	$first_chunk                 = $block['innerContent'][0] ?? null;
 	if ( is_string( $first_chunk ) && count( $block['innerContent'] ) > 1 ) {
 		$first_chunk_processor = new WP_HTML_Tag_Processor( $first_chunk );
 		while ( $first_chunk_processor->next_tag() ) {
@@ -1003,7 +985,7 @@ add_filter( 'render_block', 'wp_render_layout_support_flag', 10, 2 );
  * @return string Filtered block content.
  */
 function wp_restore_group_inner_container( $block_content, $block ) {
-	$tag_name                         = isset( $block['attrs']['tagName'] ) ? $block['attrs']['tagName'] : 'div';
+	$tag_name                         = $block['attrs']['tagName'] ?? 'div';
 	$group_with_inner_container_regex = sprintf(
 		'/(^\s*<%1$s\b[^>]*wp-block-group(\s|")[^>]*>)(\s*<div\b[^>]*wp-block-group__inner-container(\s|")[^>]*>)((.|\S|\s)*)/U',
 		preg_quote( $tag_name, '/' )
diff --git a/wp-includes/block-supports/position.php b/wp-includes/block-supports/position.php
index 5659afc8f2..f9bcc1b0b7 100644
--- a/wp-includes/block-supports/position.php
+++ b/wp-includes/block-supports/position.php
@@ -51,8 +51,8 @@ function wp_render_position_support( $block_content, $block ) {
 	}

 	$global_settings          = wp_get_global_settings();
-	$theme_has_sticky_support = isset( $global_settings['position']['sticky'] ) ? $global_settings['position']['sticky'] : false;
-	$theme_has_fixed_support  = isset( $global_settings['position']['fixed'] ) ? $global_settings['position']['fixed'] : false;
+	$theme_has_sticky_support = $global_settings['position']['sticky'] ?? false;
+	$theme_has_fixed_support  = $global_settings['position']['fixed'] ?? false;

 	// Only allow output for position types that the theme supports.
 	$allowed_position_types = array();
@@ -63,11 +63,11 @@ function wp_render_position_support( $block_content, $block ) {
 		$allowed_position_types[] = 'fixed';
 	}

-	$style_attribute = isset( $block['attrs']['style'] ) ? $block['attrs']['style'] : null;
+	$style_attribute = $block['attrs']['style'] ?? null;
 	$class_name      = wp_unique_id( 'wp-container-' );
 	$selector        = ".$class_name";
 	$position_styles = array();
-	$position_type   = isset( $style_attribute['position']['type'] ) ? $style_attribute['position']['type'] : '';
+	$position_type   = $style_attribute['position']['type'] ?? '';
 	$wrapper_classes = array();

 	if (
@@ -78,7 +78,7 @@ function wp_render_position_support( $block_content, $block ) {
 		$sides             = array( 'top', 'right', 'bottom', 'left' );

 		foreach ( $sides as $side ) {
-			$side_value = isset( $style_attribute['position'][ $side ] ) ? $style_attribute['position'][ $side ] : null;
+			$side_value = $style_attribute['position'][ $side ] ?? null;
 			if ( null !== $side_value ) {
 				/*
 				 * For fixed or sticky top positions,
diff --git a/wp-includes/block-supports/settings.php b/wp-includes/block-supports/settings.php
index ca3ba133cb..72b056d39b 100644
--- a/wp-includes/block-supports/settings.php
+++ b/wp-includes/block-supports/settings.php
@@ -45,7 +45,7 @@ function _wp_add_block_level_presets_class( $block_content, $block ) {
 	}

 	// return early if no settings are found on the block attributes.
-	$block_settings = isset( $block['attrs']['settings'] ) ? $block['attrs']['settings'] : null;
+	$block_settings = $block['attrs']['settings'] ?? null;
 	if ( empty( $block_settings ) ) {
 		return $block_content;
 	}
@@ -82,7 +82,7 @@ function _wp_add_block_level_preset_styles( $pre_render, $block ) {
 	}

 	// return early if no settings are found on the block attributes.
-	$block_settings = isset( $block['attrs']['settings'] ) ? $block['attrs']['settings'] : null;
+	$block_settings = $block['attrs']['settings'] ?? null;
 	if ( empty( $block_settings ) ) {
 		return null;
 	}
diff --git a/wp-includes/block-supports/spacing.php b/wp-includes/block-supports/spacing.php
index e190d9989e..a778eebeb4 100644
--- a/wp-includes/block-supports/spacing.php
+++ b/wp-includes/block-supports/spacing.php
@@ -52,7 +52,7 @@ function wp_apply_spacing_support( $block_type, $block_attributes ) {
 	$attributes          = array();
 	$has_padding_support = block_has_support( $block_type, array( 'spacing', 'padding' ), false );
 	$has_margin_support  = block_has_support( $block_type, array( 'spacing', 'margin' ), false );
-	$block_styles        = isset( $block_attributes['style'] ) ? $block_attributes['style'] : null;
+	$block_styles        = $block_attributes['style'] ?? null;

 	if ( ! $block_styles ) {
 		return $attributes;
@@ -65,10 +65,10 @@ function wp_apply_spacing_support( $block_type, $block_attributes ) {
 		'margin'  => null,
 	);
 	if ( $has_padding_support && ! $skip_padding ) {
-		$spacing_block_styles['padding'] = isset( $block_styles['spacing']['padding'] ) ? $block_styles['spacing']['padding'] : null;
+		$spacing_block_styles['padding'] = $block_styles['spacing']['padding'] ?? null;
 	}
 	if ( $has_margin_support && ! $skip_margin ) {
-		$spacing_block_styles['margin'] = isset( $block_styles['spacing']['margin'] ) ? $block_styles['spacing']['margin'] : null;
+		$spacing_block_styles['margin'] = $block_styles['spacing']['margin'] ?? null;
 	}
 	$styles = wp_style_engine_get_styles( array( 'spacing' => $spacing_block_styles ) );

diff --git a/wp-includes/block-supports/typography.php b/wp-includes/block-supports/typography.php
index a602fb3ffa..b79738f757 100644
--- a/wp-includes/block-supports/typography.php
+++ b/wp-includes/block-supports/typography.php
@@ -20,22 +20,22 @@ function wp_register_typography_support( $block_type ) {
 		return;
 	}

-	$typography_supports = isset( $block_type->supports['typography'] ) ? $block_type->supports['typography'] : false;
+	$typography_supports = $block_type->supports['typography'] ?? false;
 	if ( ! $typography_supports ) {
 		return;
 	}

-	$has_font_family_support     = isset( $typography_supports['__experimentalFontFamily'] ) ? $typography_supports['__experimentalFontFamily'] : false;
-	$has_font_size_support       = isset( $typography_supports['fontSize'] ) ? $typography_supports['fontSize'] : false;
-	$has_font_style_support      = isset( $typography_supports['__experimentalFontStyle'] ) ? $typography_supports['__experimentalFontStyle'] : false;
-	$has_font_weight_support     = isset( $typography_supports['__experimentalFontWeight'] ) ? $typography_supports['__experimentalFontWeight'] : false;
-	$has_letter_spacing_support  = isset( $typography_supports['__experimentalLetterSpacing'] ) ? $typography_supports['__experimentalLetterSpacing'] : false;
-	$has_line_height_support     = isset( $typography_supports['lineHeight'] ) ? $typography_supports['lineHeight'] : false;
-	$has_text_align_support      = isset( $typography_supports['textAlign'] ) ? $typography_supports['textAlign'] : false;
-	$has_text_columns_support    = isset( $typography_supports['textColumns'] ) ? $typography_supports['textColumns'] : false;
-	$has_text_decoration_support = isset( $typography_supports['__experimentalTextDecoration'] ) ? $typography_supports['__experimentalTextDecoration'] : false;
-	$has_text_transform_support  = isset( $typography_supports['__experimentalTextTransform'] ) ? $typography_supports['__experimentalTextTransform'] : false;
-	$has_writing_mode_support    = isset( $typography_supports['__experimentalWritingMode'] ) ? $typography_supports['__experimentalWritingMode'] : false;
+	$has_font_family_support     = $typography_supports['__experimentalFontFamily'] ?? false;
+	$has_font_size_support       = $typography_supports['fontSize'] ?? false;
+	$has_font_style_support      = $typography_supports['__experimentalFontStyle'] ?? false;
+	$has_font_weight_support     = $typography_supports['__experimentalFontWeight'] ?? false;
+	$has_letter_spacing_support  = $typography_supports['__experimentalLetterSpacing'] ?? false;
+	$has_line_height_support     = $typography_supports['lineHeight'] ?? false;
+	$has_text_align_support      = $typography_supports['textAlign'] ?? false;
+	$has_text_columns_support    = $typography_supports['textColumns'] ?? false;
+	$has_text_decoration_support = $typography_supports['__experimentalTextDecoration'] ?? false;
+	$has_text_transform_support  = $typography_supports['__experimentalTextTransform'] ?? false;
+	$has_writing_mode_support    = $typography_supports['__experimentalWritingMode'] ?? false;

 	$has_typography_support = $has_font_family_support
 		|| $has_font_size_support
@@ -91,9 +91,7 @@ function wp_apply_typography_support( $block_type, $block_attributes ) {
 		return array();
 	}

-	$typography_supports = isset( $block_type->supports['typography'] )
-		? $block_type->supports['typography']
-		: false;
+	$typography_supports = $block_type->supports['typography'] ?? false;
 	if ( ! $typography_supports ) {
 		return array();
 	}
@@ -102,17 +100,17 @@ function wp_apply_typography_support( $block_type, $block_attributes ) {
 		return array();
 	}

-	$has_font_family_support     = isset( $typography_supports['__experimentalFontFamily'] ) ? $typography_supports['__experimentalFontFamily'] : false;
-	$has_font_size_support       = isset( $typography_supports['fontSize'] ) ? $typography_supports['fontSize'] : false;
-	$has_font_style_support      = isset( $typography_supports['__experimentalFontStyle'] ) ? $typography_supports['__experimentalFontStyle'] : false;
-	$has_font_weight_support     = isset( $typography_supports['__experimentalFontWeight'] ) ? $typography_supports['__experimentalFontWeight'] : false;
-	$has_letter_spacing_support  = isset( $typography_supports['__experimentalLetterSpacing'] ) ? $typography_supports['__experimentalLetterSpacing'] : false;
-	$has_line_height_support     = isset( $typography_supports['lineHeight'] ) ? $typography_supports['lineHeight'] : false;
-	$has_text_align_support      = isset( $typography_supports['textAlign'] ) ? $typography_supports['textAlign'] : false;
-	$has_text_columns_support    = isset( $typography_supports['textColumns'] ) ? $typography_supports['textColumns'] : false;
-	$has_text_decoration_support = isset( $typography_supports['__experimentalTextDecoration'] ) ? $typography_supports['__experimentalTextDecoration'] : false;
-	$has_text_transform_support  = isset( $typography_supports['__experimentalTextTransform'] ) ? $typography_supports['__experimentalTextTransform'] : false;
-	$has_writing_mode_support    = isset( $typography_supports['__experimentalWritingMode'] ) ? $typography_supports['__experimentalWritingMode'] : false;
+	$has_font_family_support     = $typography_supports['__experimentalFontFamily'] ?? false;
+	$has_font_size_support       = $typography_supports['fontSize'] ?? false;
+	$has_font_style_support      = $typography_supports['__experimentalFontStyle'] ?? false;
+	$has_font_weight_support     = $typography_supports['__experimentalFontWeight'] ?? false;
+	$has_letter_spacing_support  = $typography_supports['__experimentalLetterSpacing'] ?? false;
+	$has_line_height_support     = $typography_supports['lineHeight'] ?? false;
+	$has_text_align_support      = $typography_supports['textAlign'] ?? false;
+	$has_text_columns_support    = $typography_supports['textColumns'] ?? false;
+	$has_text_decoration_support = $typography_supports['__experimentalTextDecoration'] ?? false;
+	$has_text_transform_support  = $typography_supports['__experimentalTextTransform'] ?? false;
+	$has_writing_mode_support    = $typography_supports['__experimentalWritingMode'] ?? false;

 	// Whether to skip individual block support features.
 	$should_skip_font_size       = wp_should_skip_block_supports_serialization( $block_type, 'typography', 'fontSize' );
@@ -132,9 +130,7 @@ function wp_apply_typography_support( $block_type, $block_attributes ) {
 		$preset_font_size                    = array_key_exists( 'fontSize', $block_attributes )
 			? "var:preset|font-size|{$block_attributes['fontSize']}"
 			: null;
-		$custom_font_size                    = isset( $block_attributes['style']['typography']['fontSize'] )
-			? $block_attributes['style']['typography']['fontSize']
-			: null;
+		$custom_font_size                    = $block_attributes['style']['typography']['fontSize'] ?? null;
 		$typography_block_styles['fontSize'] = $preset_font_size ? $preset_font_size : wp_get_typography_font_size_value(
 			array(
 				'size' => $custom_font_size,
@@ -175,21 +171,15 @@ function wp_apply_typography_support( $block_type, $block_attributes ) {
 	}

 	if ( $has_line_height_support && ! $should_skip_line_height ) {
-		$typography_block_styles['lineHeight'] = isset( $block_attributes['style']['typography']['lineHeight'] )
-			? $block_attributes['style']['typography']['lineHeight']
-			: null;
+		$typography_block_styles['lineHeight'] = $block_attributes['style']['typography']['lineHeight'] ?? null;
 	}

 	if ( $has_text_align_support && ! $should_skip_text_align ) {
-		$typography_block_styles['textAlign'] = isset( $block_attributes['style']['typography']['textAlign'] )
-			? $block_attributes['style']['typography']['textAlign']
-			: null;
+		$typography_block_styles['textAlign'] = $block_attributes['style']['typography']['textAlign'] ?? null;
 	}

 	if ( $has_text_columns_support && ! $should_skip_text_columns && isset( $block_attributes['style']['typography']['textColumns'] ) ) {
-		$typography_block_styles['textColumns'] = isset( $block_attributes['style']['typography']['textColumns'] )
-			? $block_attributes['style']['typography']['textColumns']
-			: null;
+		$typography_block_styles['textColumns'] = $block_attributes['style']['typography']['textColumns'] ?? null;
 	}

 	if (
@@ -229,9 +219,7 @@ function wp_apply_typography_support( $block_type, $block_attributes ) {
 		! $should_skip_writing_mode &&
 		isset( $block_attributes['style']['typography']['writingMode'] )
 	) {
-		$typography_block_styles['writingMode'] = isset( $block_attributes['style']['typography']['writingMode'] )
-			? $block_attributes['style']['typography']['writingMode']
-			: null;
+		$typography_block_styles['writingMode'] = $block_attributes['style']['typography']['writingMode'] ?? null;
 	}

 	$attributes = array();
@@ -452,11 +440,11 @@ function wp_get_typography_value_and_unit( $raw_value, $options = array() ) {
  * @return string|null A font-size value using clamp() on success, otherwise null.
  */
 function wp_get_computed_fluid_typography_value( $args = array() ) {
-	$maximum_viewport_width_raw = isset( $args['maximum_viewport_width'] ) ? $args['maximum_viewport_width'] : null;
-	$minimum_viewport_width_raw = isset( $args['minimum_viewport_width'] ) ? $args['minimum_viewport_width'] : null;
-	$maximum_font_size_raw      = isset( $args['maximum_font_size'] ) ? $args['maximum_font_size'] : null;
-	$minimum_font_size_raw      = isset( $args['minimum_font_size'] ) ? $args['minimum_font_size'] : null;
-	$scale_factor               = isset( $args['scale_factor'] ) ? $args['scale_factor'] : null;
+	$maximum_viewport_width_raw = $args['maximum_viewport_width'] ?? null;
+	$minimum_viewport_width_raw = $args['minimum_viewport_width'] ?? null;
+	$maximum_font_size_raw      = $args['maximum_font_size'] ?? null;
+	$minimum_font_size_raw      = $args['minimum_font_size'] ?? null;
+	$scale_factor               = $args['scale_factor'] ?? null;

 	// Normalizes the minimum font size in order to use the value for calculations.
 	$minimum_font_size = wp_get_typography_value_and_unit( $minimum_font_size_raw );
@@ -465,7 +453,7 @@ function wp_get_computed_fluid_typography_value( $args = array() ) {
 	 * We get a 'preferred' unit to keep units consistent when calculating,
 	 * otherwise the result will not be accurate.
 	 */
-	$font_size_unit = isset( $minimum_font_size['unit'] ) ? $minimum_font_size['unit'] : 'rem';
+	$font_size_unit = $minimum_font_size['unit'] ?? 'rem';

 	// Normalizes the maximum font size in order to use the value for calculations.
 	$maximum_font_size = wp_get_typography_value_and_unit(
@@ -598,8 +586,8 @@ function wp_get_typography_font_size_value( $preset, $settings = array() ) {
 		return $preset['size'];
 	}

-	$fluid_settings  = isset( $typography_settings['fluid'] ) ? $typography_settings['fluid'] : array();
-	$layout_settings = isset( $settings['layout'] ) ? $settings['layout'] : array();
+	$fluid_settings  = $typography_settings['fluid'] ?? array();
+	$layout_settings = $settings['layout'] ?? array();

 	// Defaults.
 	$default_maximum_viewport_width       = '1600px';
@@ -610,7 +598,7 @@ function wp_get_typography_font_size_value( $preset, $settings = array() ) {
 	$default_minimum_font_size_limit      = '14px';

 	// Defaults overrides.
-	$minimum_viewport_width = isset( $fluid_settings['minViewportWidth'] ) ? $fluid_settings['minViewportWidth'] : $default_minimum_viewport_width;
+	$minimum_viewport_width = $fluid_settings['minViewportWidth'] ?? $default_minimum_viewport_width;
 	$maximum_viewport_width = isset( $layout_settings['wideSize'] ) && ! empty( wp_get_typography_value_and_unit( $layout_settings['wideSize'] ) ) ? $layout_settings['wideSize'] : $default_maximum_viewport_width;
 	if ( isset( $fluid_settings['maxViewportWidth'] ) ) {
 		$maximum_viewport_width = $fluid_settings['maxViewportWidth'];
@@ -619,8 +607,8 @@ function wp_get_typography_font_size_value( $preset, $settings = array() ) {
 	$minimum_font_size_limit = $has_min_font_size ? $fluid_settings['minFontSize'] : $default_minimum_font_size_limit;

 	// Try to grab explicit min and max fluid font sizes.
-	$minimum_font_size_raw = isset( $fluid_font_size_settings['min'] ) ? $fluid_font_size_settings['min'] : null;
-	$maximum_font_size_raw = isset( $fluid_font_size_settings['max'] ) ? $fluid_font_size_settings['max'] : null;
+	$minimum_font_size_raw = $fluid_font_size_settings['min'] ?? null;
+	$maximum_font_size_raw = $fluid_font_size_settings['max'] ?? null;

 	// Font sizes.
 	$preferred_size = wp_get_typography_value_and_unit( $preset['size'] );
diff --git a/wp-includes/version.php b/wp-includes/version.php
index e80e1e36e1..f73e3045d9 100644
--- a/wp-includes/version.php
+++ b/wp-includes/version.php
@@ -16,7 +16,7 @@
  *
  * @global string $wp_version
  */
-$wp_version = '7.0-alpha-61429';
+$wp_version = '7.0-alpha-61430';

 /**
  * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.