wp_register_colors_support()
Registers the style and colors block attributes for block types that support it.
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
null. Nothing (null).
Usage
wp_register_colors_support( $block_type );
- $block_type(WP_Block_Type) (required)
- Block Type.
Changelog
| Since 5.6.0 | Introduced. |
| Since 6.1.0 | Improved $color_support assignment optimization. |
wp_register_colors_support() wp register colors support code WP 7.0.2
function wp_register_colors_support( $block_type ) {
$color_support = false;
if ( $block_type instanceof WP_Block_Type ) {
$color_support = $block_type->supports['color'] ?? false;
}
$has_text_colors_support = true === $color_support ||
( isset( $color_support['text'] ) && $color_support['text'] ) ||
( is_array( $color_support ) && ! isset( $color_support['text'] ) );
$has_background_colors_support = true === $color_support ||
( isset( $color_support['background'] ) && $color_support['background'] ) ||
( is_array( $color_support ) && ! isset( $color_support['background'] ) );
$has_gradients_support = $color_support['gradients'] ?? false;
$has_link_colors_support = $color_support['link'] ?? false;
$has_button_colors_support = $color_support['button'] ?? false;
$has_heading_colors_support = $color_support['heading'] ?? false;
$has_color_support = $has_text_colors_support ||
$has_background_colors_support ||
$has_gradients_support ||
$has_link_colors_support ||
$has_button_colors_support ||
$has_heading_colors_support;
if ( ! $block_type->attributes ) {
$block_type->attributes = array();
}
if ( $has_color_support && ! array_key_exists( 'style', $block_type->attributes ) ) {
$block_type->attributes['style'] = array(
'type' => 'object',
);
}
if ( $has_background_colors_support && ! array_key_exists( 'backgroundColor', $block_type->attributes ) ) {
$block_type->attributes['backgroundColor'] = array(
'type' => 'string',
);
}
if ( $has_text_colors_support && ! array_key_exists( 'textColor', $block_type->attributes ) ) {
$block_type->attributes['textColor'] = array(
'type' => 'string',
);
}
if ( $has_gradients_support && ! array_key_exists( 'gradient', $block_type->attributes ) ) {
$block_type->attributes['gradient'] = array(
'type' => 'string',
);
}
}