<?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 * @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 ) { return array(); } $shadow_block_styles = array(); $preset_shadow = array_key_exists( 'shadow', $block_attributes ) ? "var:preset|shadow|{$block_attributes['shadow']}" : null; $custom_shadow = isset( $block_attributes['style']['shadow'] ) ? $block_attributes['style']['shadow'] : null; $shadow_block_styles['shadow'] = $preset_shadow ? $preset_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 | 0777 |
|
background.php | File | 3.54 KB | 0777 |
|
border.php | File | 6.27 KB | 0777 |
|
colors.php | File | 5.81 KB | 0777 |
|
custom-classname.php | File | 1.64 KB | 0777 |
|
dimensions.php | File | 2.71 KB | 0777 |
|
duotone.php | File | 2.57 KB | 0777 |
|
elements.php | File | 7.32 KB | 0777 |
|
generated-classname.php | File | 1.7 KB | 0777 |
|
layout.php | File | 32.2 KB | 0777 |
|
position.php | File | 4.24 KB | 0777 |
|
settings.php | File | 4.52 KB | 0777 |
|
shadow.php | File | 2.12 KB | 0777 |
|
spacing.php | File | 2.81 KB | 0777 |
|
typography.php | File | 26.33 KB | 0777 |
|
utils.php | File | 1011 B | 0777 |
|