diff -r be944660c56a -r 3d72ae0968f4 wp/wp-includes/block-supports/border.php --- a/wp/wp-includes/block-supports/border.php Wed Sep 21 18:19:35 2022 +0200 +++ b/wp/wp-includes/block-supports/border.php Tue Sep 27 16:37:53 2022 +0200 @@ -47,11 +47,10 @@ * * @param WP_Block_Type $block_type Block type. * @param array $block_attributes Block attributes. - * * @return array Border CSS classes and inline styles. */ function wp_apply_border_support( $block_type, $block_attributes ) { - if ( wp_skip_border_serialization( $block_type ) ) { + if ( wp_should_skip_block_supports_serialization( $block_type, 'border' ) ) { return array(); } @@ -61,16 +60,33 @@ // Border radius. if ( wp_has_border_feature_support( $block_type, 'radius' ) && - isset( $block_attributes['style']['border']['radius'] ) + isset( $block_attributes['style']['border']['radius'] ) && + ! wp_should_skip_block_supports_serialization( $block_type, '__experimentalBorder', 'radius' ) ) { - $border_radius = (int) $block_attributes['style']['border']['radius']; - $styles[] = sprintf( 'border-radius: %dpx;', $border_radius ); + $border_radius = $block_attributes['style']['border']['radius']; + + if ( is_array( $border_radius ) ) { + // We have individual border radius corner values. + foreach ( $border_radius as $key => $radius ) { + // Convert CamelCase corner name to kebab-case. + $corner = strtolower( preg_replace( '/(?supports, array( '__experimentalBorder' ), false ); - - return is_array( $border_support ) && - array_key_exists( '__experimentalSkipSerialization', $border_support ) && - $border_support['__experimentalSkipSerialization']; -} - -/** * Checks whether the current block type supports the border feature requested. * * If the `__experimentalBorder` support flag is a boolean `true` all border @@ -146,24 +153,23 @@ * @since 5.8.0 * @access private * - * @param WP_Block_Type $block_type Block type to check for support. - * @param string $feature Name of the feature to check support for. - * @param mixed $default Fallback value for feature support, defaults to false. - * - * @return boolean Whether or not the feature is supported. + * @param WP_Block_Type $block_type Block type to check for support. + * @param string $feature Name of the feature to check support for. + * @param mixed $default_value Fallback value for feature support, defaults to false. + * @return bool Whether the feature is supported. */ -function wp_has_border_feature_support( $block_type, $feature, $default = false ) { +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 ( property_exists( $block_type, 'supports' ) && - ( true === _wp_array_get( $block_type->supports, array( '__experimentalBorder' ), $default ) ) + ( true === _wp_array_get( $block_type->supports, array( '__experimentalBorder' ), $default_value ) ) ) { return true; } // Check if the specific feature has been opted into individually // via nested flag under `__experimentalBorder`. - return block_has_support( $block_type, array( '__experimentalBorder', $feature ), $default ); + return block_has_support( $block_type, array( '__experimentalBorder', $feature ), $default_value ); } // Register the block support.