Skip to content

Commit 464985f

Browse files
westonruteraaronjorbin
authored andcommitted
Code Modernization: Block Supports: Use null coalescing operator instead of isset() ternaries.
Developed as a subset of WordPress#10654 Initially developed in WordPress#4886 Follow-up to [61429], [61424], [61404], [61403]. Props costdev, westonruter. See #58874, #63430. git-svn-id: https://develop.svn.wordpress.org/trunk@61430 602fd350-edb4-49c9-b593-d223f7449a82
1 parent 3664c0c commit 464985f

File tree

9 files changed

+95
-131
lines changed

9 files changed

+95
-131
lines changed

src/wp-includes/block-supports/border.php

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -102,14 +102,14 @@ function wp_apply_border_support( $block_type, $block_attributes ) {
102102
! wp_should_skip_block_supports_serialization( $block_type, '__experimentalBorder', 'color' )
103103
) {
104104
$preset_border_color = array_key_exists( 'borderColor', $block_attributes ) ? "var:preset|color|{$block_attributes['borderColor']}" : null;
105-
$custom_border_color = isset( $block_attributes['style']['border']['color'] ) ? $block_attributes['style']['border']['color'] : null;
105+
$custom_border_color = $block_attributes['style']['border']['color'] ?? null;
106106
$border_block_styles['color'] = $preset_border_color ? $preset_border_color : $custom_border_color;
107107
}
108108

109109
// Generates styles for individual border sides.
110110
if ( $has_border_color_support || $has_border_width_support ) {
111111
foreach ( array( 'top', 'right', 'bottom', 'left' ) as $side ) {
112-
$border = isset( $block_attributes['style']['border'][ $side ] ) ? $block_attributes['style']['border'][ $side ] : null;
112+
$border = $block_attributes['style']['border'][ $side ] ?? null;
113113
$border_side_values = array(
114114
'width' => isset( $border['width'] ) && ! wp_should_skip_block_supports_serialization( $block_type, '__experimentalBorder', 'width' ) ? $border['width'] : null,
115115
'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 ) {
153153
function wp_has_border_feature_support( $block_type, $feature, $default_value = false ) {
154154
// Check if all border support features have been opted into via `"__experimentalBorder": true`.
155155
if ( $block_type instanceof WP_Block_Type ) {
156-
$block_type_supports_border = isset( $block_type->supports['__experimentalBorder'] )
157-
? $block_type->supports['__experimentalBorder']
158-
: $default_value;
156+
$block_type_supports_border = $block_type->supports['__experimentalBorder'] ?? $default_value;
159157
if ( true === $block_type_supports_border ) {
160158
return true;
161159
}

src/wp-includes/block-supports/colors.php

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,18 @@
1818
function wp_register_colors_support( $block_type ) {
1919
$color_support = false;
2020
if ( $block_type instanceof WP_Block_Type ) {
21-
$color_support = isset( $block_type->supports['color'] ) ? $block_type->supports['color'] : false;
21+
$color_support = $block_type->supports['color'] ?? false;
2222
}
2323
$has_text_colors_support = true === $color_support ||
2424
( isset( $color_support['text'] ) && $color_support['text'] ) ||
2525
( is_array( $color_support ) && ! isset( $color_support['text'] ) );
2626
$has_background_colors_support = true === $color_support ||
2727
( isset( $color_support['background'] ) && $color_support['background'] ) ||
2828
( is_array( $color_support ) && ! isset( $color_support['background'] ) );
29-
$has_gradients_support = isset( $color_support['gradients'] ) ? $color_support['gradients'] : false;
30-
$has_link_colors_support = isset( $color_support['link'] ) ? $color_support['link'] : false;
31-
$has_button_colors_support = isset( $color_support['button'] ) ? $color_support['button'] : false;
32-
$has_heading_colors_support = isset( $color_support['heading'] ) ? $color_support['heading'] : false;
29+
$has_gradients_support = $color_support['gradients'] ?? false;
30+
$has_link_colors_support = $color_support['link'] ?? false;
31+
$has_button_colors_support = $color_support['button'] ?? false;
32+
$has_heading_colors_support = $color_support['heading'] ?? false;
3333
$has_color_support = $has_text_colors_support ||
3434
$has_background_colors_support ||
3535
$has_gradients_support ||
@@ -81,7 +81,7 @@ function wp_register_colors_support( $block_type ) {
8181
* @return array Colors CSS classes and inline styles.
8282
*/
8383
function wp_apply_colors_support( $block_type, $block_attributes ) {
84-
$color_support = isset( $block_type->supports['color'] ) ? $block_type->supports['color'] : false;
84+
$color_support = $block_type->supports['color'] ?? false;
8585

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

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

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

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

src/wp-includes/block-supports/dimensions.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ function wp_apply_dimensions_support( $block_type, $block_attributes ) {
6060
// Width support to be added in near future.
6161

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

6565
if ( ! $block_styles ) {
6666
return $attributes;
@@ -70,9 +70,7 @@ function wp_apply_dimensions_support( $block_type, $block_attributes ) {
7070
$dimensions_block_styles = array();
7171
$dimensions_block_styles['minHeight'] = null;
7272
if ( $has_min_height_support && ! $skip_min_height ) {
73-
$dimensions_block_styles['minHeight'] = isset( $block_styles['dimensions']['minHeight'] )
74-
? $block_styles['dimensions']['minHeight']
75-
: null;
73+
$dimensions_block_styles['minHeight'] = $block_styles['dimensions']['minHeight'] ?? null;
7674
}
7775
$styles = wp_style_engine_get_styles( array( 'dimensions' => $dimensions_block_styles ) );
7876

src/wp-includes/block-supports/elements.php

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,22 +36,22 @@ function wp_should_add_elements_class_name( $block, $options ) {
3636

3737
$element_color_properties = array(
3838
'button' => array(
39-
'skip' => isset( $options['button']['skip'] ) ? $options['button']['skip'] : false,
39+
'skip' => $options['button']['skip'] ?? false,
4040
'paths' => array(
4141
array( 'button', 'color', 'text' ),
4242
array( 'button', 'color', 'background' ),
4343
array( 'button', 'color', 'gradient' ),
4444
),
4545
),
4646
'link' => array(
47-
'skip' => isset( $options['link']['skip'] ) ? $options['link']['skip'] : false,
47+
'skip' => $options['link']['skip'] ?? false,
4848
'paths' => array(
4949
array( 'link', 'color', 'text' ),
5050
array( 'link', ':hover', 'color', 'text' ),
5151
),
5252
),
5353
'heading' => array(
54-
'skip' => isset( $options['heading']['skip'] ) ? $options['heading']['skip'] : false,
54+
'skip' => $options['heading']['skip'] ?? false,
5555
'paths' => array(
5656
array( 'heading', 'color', 'text' ),
5757
array( 'heading', 'color', 'background' ),
@@ -130,7 +130,7 @@ function wp_render_elements_support_styles( $parsed_block ) {
130130
}
131131

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

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

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

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

218216
if ( $element_style_object ) {
219217
wp_style_engine_get_styles(

src/wp-includes/block-supports/layout.php

Lines changed: 24 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -238,13 +238,13 @@ function wp_register_layout_support( $block_type ) {
238238
* @return string CSS styles on success. Else, empty string.
239239
*/
240240
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 ) {
241-
$layout_type = isset( $layout['type'] ) ? $layout['type'] : 'default';
241+
$layout_type = $layout['type'] ?? 'default';
242242
$layout_styles = array();
243243

244244
if ( 'default' === $layout_type ) {
245245
if ( $has_block_gap_support ) {
246246
if ( is_array( $gap_value ) ) {
247-
$gap_value = isset( $gap_value['top'] ) ? $gap_value['top'] : null;
247+
$gap_value = $gap_value['top'] ?? null;
248248
}
249249
if ( null !== $gap_value && ! $should_skip_gap_serialization ) {
250250
// 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
274274
}
275275
}
276276
} elseif ( 'constrained' === $layout_type ) {
277-
$content_size = isset( $layout['contentSize'] ) ? $layout['contentSize'] : '';
278-
$wide_size = isset( $layout['wideSize'] ) ? $layout['wideSize'] : '';
279-
$justify_content = isset( $layout['justifyContent'] ) ? $layout['justifyContent'] : 'center';
277+
$content_size = $layout['contentSize'] ?? '';
278+
$wide_size = $layout['wideSize'] ?? '';
279+
$justify_content = $layout['justifyContent'] ?? 'center';
280280

281281
$all_max_width_value = $content_size ? $content_size : $wide_size;
282282
$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
361361

362362
if ( $has_block_gap_support ) {
363363
if ( is_array( $gap_value ) ) {
364-
$gap_value = isset( $gap_value['top'] ) ? $gap_value['top'] : null;
364+
$gap_value = $gap_value['top'] ?? null;
365365
}
366366
if ( null !== $gap_value && ! $should_skip_gap_serialization ) {
367367
// 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
391391
}
392392
}
393393
} elseif ( 'flex' === $layout_type ) {
394-
$layout_orientation = isset( $layout['orientation'] ) ? $layout['orientation'] : 'horizontal';
394+
$layout_orientation = $layout['orientation'] ?? 'horizontal';
395395

396396
$justify_content_options = array(
397397
'left' => 'flex-start',
@@ -427,7 +427,7 @@ function wp_get_layout_style( $selector, $layout, $has_block_gap_support = false
427427
foreach ( $gap_sides as $gap_side ) {
428428
$process_value = $gap_value;
429429
if ( is_array( $gap_value ) ) {
430-
$process_value = isset( $gap_value[ $gap_side ] ) ? $gap_value[ $gap_side ] : $fallback_gap_value;
430+
$process_value = $gap_value[ $gap_side ] ?? $fallback_gap_value;
431431
}
432432
// Get spacing CSS variable from preset value if provided.
433433
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
514514
foreach ( $gap_sides as $gap_side ) {
515515
$process_value = $gap_value;
516516
if ( is_array( $gap_value ) ) {
517-
$process_value = isset( $gap_value[ $gap_side ] ) ? $gap_value[ $gap_side ] : $fallback_gap_value;
517+
$process_value = $gap_value[ $gap_side ] ?? $fallback_gap_value;
518518
}
519519
// Get spacing CSS variable from preset value if provided.
520520
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
570570
function wp_render_layout_support_flag( $block_content, $block ) {
571571
$block_type = WP_Block_Type_Registry::get_instance()->get_registered( $block['blockName'] );
572572
$block_supports_layout = block_has_support( $block_type, 'layout', false ) || block_has_support( $block_type, '__experimentalLayout', false );
573-
$child_layout = isset( $block['attrs']['style']['layout'] ) ? $block['attrs']['style']['layout'] : null;
573+
$child_layout = $block['attrs']['style']['layout'] ?? null;
574574

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

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

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

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

721721
$global_settings = wp_get_global_settings();
722-
$fallback_layout = isset( $block_type->supports['layout']['default'] )
723-
? $block_type->supports['layout']['default']
724-
: array();
722+
$fallback_layout = $block_type->supports['layout']['default'] ?? array();
725723
if ( empty( $fallback_layout ) ) {
726-
$fallback_layout = isset( $block_type->supports['__experimentalLayout']['default'] )
727-
? $block_type->supports['__experimentalLayout']['default']
728-
: array();
724+
$fallback_layout = $block_type->supports['__experimentalLayout']['default'] ?? array();
729725
}
730-
$used_layout = isset( $block['attrs']['layout'] ) ? $block['attrs']['layout'] : $fallback_layout;
726+
$used_layout = $block['attrs']['layout'] ?? $fallback_layout;
731727

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

740-
$root_padding_aware_alignments = isset( $global_settings['useRootPaddingAwareAlignments'] )
741-
? $global_settings['useRootPaddingAwareAlignments']
742-
: false;
736+
$root_padding_aware_alignments = $global_settings['useRootPaddingAwareAlignments'] ?? false;
743737

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

770764
// Get classname for layout type.
771765
if ( isset( $used_layout['type'] ) ) {
772-
$layout_classname = isset( $layout_definitions[ $used_layout['type'] ]['className'] )
773-
? $layout_definitions[ $used_layout['type'] ]['className']
774-
: '';
766+
$layout_classname = $layout_definitions[ $used_layout['type'] ]['className'] ?? '';
775767
} else {
776-
$layout_classname = isset( $layout_definitions['default']['className'] )
777-
? $layout_definitions['default']['className']
778-
: '';
768+
$layout_classname = $layout_definitions['default']['className'] ?? '';
779769
}
780770

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

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

807-
$fallback_gap_value = isset( $block_type->supports['spacing']['blockGap']['__experimentalDefault'] )
808-
? $block_type->supports['spacing']['blockGap']['__experimentalDefault']
809-
: '0.5em';
810-
$block_spacing = isset( $block['attrs']['style']['spacing'] )
811-
? $block['attrs']['style']['spacing']
812-
: null;
795+
$fallback_gap_value = $block_type->supports['spacing']['blockGap']['__experimentalDefault'] ?? '0.5em';
796+
$block_spacing = $block['attrs']['style']['spacing'] ?? null;
813797

814798
/*
815799
* If a block's block.json skips serialization for spacing or spacing.blockGap,
816800
* don't apply the user-defined value to the styles.
817801
*/
818802
$should_skip_gap_serialization = wp_should_skip_block_supports_serialization( $block_type, 'spacing', 'blockGap' );
819803

820-
$block_gap = isset( $global_settings['spacing']['blockGap'] )
821-
? $global_settings['spacing']['blockGap']
822-
: null;
804+
$block_gap = $global_settings['spacing']['blockGap'] ?? null;
823805
$has_block_gap_support = isset( $block_gap );
824806

825807
/*
@@ -917,7 +899,7 @@ function wp_render_layout_support_flag( $block_content, $block ) {
917899
* @var string|null
918900
*/
919901
$inner_block_wrapper_classes = null;
920-
$first_chunk = isset( $block['innerContent'][0] ) ? $block['innerContent'][0] : null;
902+
$first_chunk = $block['innerContent'][0] ?? null;
921903
if ( is_string( $first_chunk ) && count( $block['innerContent'] ) > 1 ) {
922904
$first_chunk_processor = new WP_HTML_Tag_Processor( $first_chunk );
923905
while ( $first_chunk_processor->next_tag() ) {
@@ -1003,7 +985,7 @@ function wp_add_parent_layout_to_parsed_block( $parsed_block, $source_block, $pa
1003985
* @return string Filtered block content.
1004986
*/
1005987
function wp_restore_group_inner_container( $block_content, $block ) {
1006-
$tag_name = isset( $block['attrs']['tagName'] ) ? $block['attrs']['tagName'] : 'div';
988+
$tag_name = $block['attrs']['tagName'] ?? 'div';
1007989
$group_with_inner_container_regex = sprintf(
1008990
'/(^\s*<%1$s\b[^>]*wp-block-group(\s|")[^>]*>)(\s*<div\b[^>]*wp-block-group__inner-container(\s|")[^>]*>)((.|\S|\s)*)/U',
1009991
preg_quote( $tag_name, '/' )

0 commit comments

Comments
 (0)