wp_apply_spacing_support()
Adds CSS classes for block spacing to the incoming attributes array. This will be applied to the block markup in the front-end.
Internal function — this function is designed to be used by the kernel itself. It is not recommended to use this function in your code.
No Hooks.
Returns
Array. Block spacing CSS classes and inline styles.
Usage
wp_apply_spacing_support( $block_type, $block_attributes );
- $block_type(WP_Block_Type) (required)
- Block Type.
- $block_attributes(array) (required)
- Block attributes.
Changelog
| Since 5.8.0 | Introduced. |
| Since 6.1.0 | Implemented the style engine to generate CSS and classnames. |
wp_apply_spacing_support() wp apply spacing support code WP 6.9.1
function wp_apply_spacing_support( $block_type, $block_attributes ) {
if ( wp_should_skip_block_supports_serialization( $block_type, 'spacing' ) ) {
return array();
}
$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;
if ( ! $block_styles ) {
return $attributes;
}
$skip_padding = wp_should_skip_block_supports_serialization( $block_type, 'spacing', 'padding' );
$skip_margin = wp_should_skip_block_supports_serialization( $block_type, 'spacing', 'margin' );
$spacing_block_styles = array(
'padding' => null,
'margin' => null,
);
if ( $has_padding_support && ! $skip_padding ) {
$spacing_block_styles['padding'] = isset( $block_styles['spacing']['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;
}
$styles = wp_style_engine_get_styles( array( 'spacing' => $spacing_block_styles ) );
if ( ! empty( $styles['css'] ) ) {
$attributes['style'] = $styles['css'];
}
return $attributes;
}