<?php /** * Shadow block support flag. * * @package WordPress * @since 6.3.0 */ /** * Registers the style and shadow block attributes for block types that support it. * * @since 6.3.0 * @access private * * @param WP_Block_Type $block_type Block Type. */ function wp_register_shadow_support( $block_type ) { $has_shadow_support = block_has_support( $block_type, 'shadow', false ); if ( ! $has_shadow_support ) { return; } if ( ! $block_type->attributes ) { $block_type->attributes = array(); } if ( array_key_exists( 'style', $block_type->attributes ) ) { $block_type->attributes['style'] = array( 'type' => 'object', ); } if ( array_key_exists( 'shadow', $block_type->attributes ) ) { $block_type->attributes['shadow'] = array( 'type' => 'string', ); } } /** * Add CSS classes and inline styles for shadow features to the incoming attributes array. * This will be applied to the block markup in the front-end. * * @since 6.3.0 * @since 6.6.0 Return early if __experimentalSkipSerialization is true. * @access private * * @param WP_Block_Type $block_type Block type. * @param array $block_attributes Block attributes. * @return array Shadow CSS classes and inline styles. */ function wp_apply_shadow_support( $block_type, $block_attributes ) { $has_shadow_support = block_has_support( $block_type, 'shadow', false ); if ( ! $has_shadow_support || wp_should_skip_block_supports_serialization( $block_type, 'shadow' ) ) { return array(); } $shadow_block_styles = array(); $custom_shadow = $block_attributes['style']['shadow'] ?? null; $shadow_block_styles['shadow'] = $custom_shadow; $attributes = array(); $styles = wp_style_engine_get_styles( $shadow_block_styles ); if ( ! empty( $styles['css'] ) ) { $attributes['style'] = $styles['css']; } return $attributes; } // Register the block support. WP_Block_Supports::get_instance()->register( 'shadow', array( 'register_attribute' => 'wp_register_shadow_support', 'apply' => 'wp_apply_shadow_support', ) );
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
align.php | File | 1.67 KB | 0644 |
|
background.php | File | 4.02 KB | 0644 |
|
block-style-variations.php | File | 9.2 KB | 0644 |
|
border.php | File | 6.27 KB | 0644 |
|
colors.php | File | 5.81 KB | 0644 |
|
custom-classname.php | File | 1.64 KB | 0644 |
|
dimensions.php | File | 5.28 KB | 0644 |
|
duotone.php | File | 2.67 KB | 0644 |
|
elements.php | File | 8.46 KB | 0644 |
|
error_log | File | 3.46 KB | 0644 |
|
generated-classname.php | File | 1.7 KB | 0644 |
|
layout.php | File | 37.48 KB | 0644 |
|
position.php | File | 4.24 KB | 0644 |
|
settings.php | File | 4.52 KB | 0644 |
|
shadow.php | File | 2.04 KB | 0644 |
|
spacing.php | File | 2.81 KB | 0644 |
|
typography.php | File | 28.13 KB | 0644 |
|
utils.php | File | 1011 B | 0644 |
|