wp_register_colors_support

The timeline below displays how wordpress function wp_register_colors_support has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.4

/**
 * Colors block support flag.
 *
 * @package WordPress
 * @since 5.6.0
 */
/**
 * Registers the style and colors block attributes for block types that support it.
 *
 * @since 5.6.0
 * @since 6.1.0 Improved $color_support assignment optimization.
 * @access private
 *
 * @param WP_Block_Type $block_type Block Type.
 */
function wp_register_colors_support($block_type)
{
    $color_support = false;
    if ($block_type instanceof WP_Block_Type) {
        $color_support = isset($block_type->supports['color']) ? $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 = isset($color_support['gradients']) ? $color_support['gradients'] : false;
    $has_link_colors_support = isset($color_support['link']) ? $color_support['link'] : false;
    $has_button_colors_support = isset($color_support['button']) ? $color_support['button'] : false;
    $has_heading_colors_support = isset($color_support['heading']) ? $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');
    }
}

WordPress Version: 6.1

/**
 * Colors block support flag.
 *
 * @package WordPress
 * @since 5.6.0
 */
/**
 * Registers the style and colors block attributes for block types that support it.
 *
 * @since 5.6.0
 * @since 6.1.0 Improved $color_support assignment optimization.
 * @access private
 *
 * @param WP_Block_Type $block_type Block Type.
 */
function wp_register_colors_support($block_type)
{
    $color_support = property_exists($block_type, 'supports') ? _wp_array_get($block_type->supports, array('color'), false) : false;
    $has_text_colors_support = true === $color_support || is_array($color_support) && _wp_array_get($color_support, array('text'), true);
    $has_background_colors_support = true === $color_support || is_array($color_support) && _wp_array_get($color_support, array('background'), true);
    $has_gradients_support = _wp_array_get($color_support, array('gradients'), false);
    $has_link_colors_support = _wp_array_get($color_support, array('link'), false);
    $has_color_support = $has_text_colors_support || $has_background_colors_support || $has_gradients_support || $has_link_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');
    }
}

WordPress Version: 5.8

/**
 * Colors block support flag.
 *
 * @package WordPress
 * @since 5.6.0
 */
/**
 * Registers the style and colors block attributes for block types that support it.
 *
 * @since 5.6.0
 * @access private
 *
 * @param WP_Block_Type $block_type Block Type.
 */
function wp_register_colors_support($block_type)
{
    $color_support = false;
    if (property_exists($block_type, 'supports')) {
        $color_support = _wp_array_get($block_type->supports, array('color'), false);
    }
    $has_text_colors_support = true === $color_support || is_array($color_support) && _wp_array_get($color_support, array('text'), true);
    $has_background_colors_support = true === $color_support || is_array($color_support) && _wp_array_get($color_support, array('background'), true);
    $has_gradients_support = _wp_array_get($color_support, array('gradients'), false);
    $has_link_colors_support = _wp_array_get($color_support, array('link'), false);
    $has_color_support = $has_text_colors_support || $has_background_colors_support || $has_gradients_support || $has_link_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');
    }
}

WordPress Version: 5.7

/**
 * Colors block support flag.
 *
 * @package WordPress
 */
/**
 * Registers the style and colors block attributes for block types that support it.
 *
 * @access private
 *
 * @param WP_Block_Type $block_type Block Type.
 */
function wp_register_colors_support($block_type)
{
    $color_support = false;
    if (property_exists($block_type, 'supports')) {
        $color_support = _wp_array_get($block_type->supports, array('color'), false);
    }
    $has_text_colors_support = true === $color_support || is_array($color_support) && _wp_array_get($color_support, array('text'), true);
    $has_background_colors_support = true === $color_support || is_array($color_support) && _wp_array_get($color_support, array('background'), true);
    $has_gradients_support = _wp_array_get($color_support, array('gradients'), false);
    if (!$block_type->attributes) {
        $block_type->attributes = array();
    }
    if ($has_text_colors_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');
    }
}

WordPress Version: 5.6

/**
 * Colors block support flag.
 *
 * @package WordPress
 */
/**
 * Registers the style and colors block attributes for block types that support it.
 *
 * @access private
 *
 * @param WP_Block_Type $block_type Block Type.
 */
function wp_register_colors_support($block_type)
{
    $color_support = false;
    if (property_exists($block_type, 'supports')) {
        $color_support = _wp_array_get($block_type->supports, array('__experimentalColor'), false);
    }
    $has_text_colors_support = true === $color_support || is_array($color_support) && _wp_array_get($color_support, array('text'), true);
    $has_background_colors_support = true === $color_support || is_array($color_support) && _wp_array_get($color_support, array('background'), true);
    $has_gradients_support = _wp_array_get($color_support, array('gradients'), false);
    if (!$block_type->attributes) {
        $block_type->attributes = array();
    }
    if ($has_text_colors_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');
    }
}