wp_register_typography_support

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

WordPress Version: 6.4

/**
 * Typography block support flag.
 *
 * @package WordPress
 * @since 5.6.0
 */
/**
 * Registers the style and typography block attributes for block types that support it.
 *
 * @since 5.6.0
 * @since 6.3.0 Added support for text-columns.
 * @access private
 *
 * @param WP_Block_Type $block_type Block Type.
 */
function wp_register_typography_support($block_type)
{
    if (!$block_type instanceof WP_Block_Type) {
        return;
    }
    $typography_supports = isset($block_type->supports['typography']) ? $block_type->supports['typography'] : false;
    if (!$typography_supports) {
        return;
    }
    $has_font_family_support = isset($typography_supports['__experimentalFontFamily']) ? $typography_supports['__experimentalFontFamily'] : false;
    $has_font_size_support = isset($typography_supports['fontSize']) ? $typography_supports['fontSize'] : false;
    $has_font_style_support = isset($typography_supports['__experimentalFontStyle']) ? $typography_supports['__experimentalFontStyle'] : false;
    $has_font_weight_support = isset($typography_supports['__experimentalFontWeight']) ? $typography_supports['__experimentalFontWeight'] : false;
    $has_letter_spacing_support = isset($typography_supports['__experimentalLetterSpacing']) ? $typography_supports['__experimentalLetterSpacing'] : false;
    $has_line_height_support = isset($typography_supports['lineHeight']) ? $typography_supports['lineHeight'] : false;
    $has_text_columns_support = isset($typography_supports['textColumns']) ? $typography_supports['textColumns'] : false;
    $has_text_decoration_support = isset($typography_supports['__experimentalTextDecoration']) ? $typography_supports['__experimentalTextDecoration'] : false;
    $has_text_transform_support = isset($typography_supports['__experimentalTextTransform']) ? $typography_supports['__experimentalTextTransform'] : false;
    $has_writing_mode_support = isset($typography_supports['__experimentalWritingMode']) ? $typography_supports['__experimentalWritingMode'] : false;
    $has_typography_support = $has_font_family_support || $has_font_size_support || $has_font_style_support || $has_font_weight_support || $has_letter_spacing_support || $has_line_height_support || $has_text_columns_support || $has_text_decoration_support || $has_text_transform_support || $has_writing_mode_support;
    if (!$block_type->attributes) {
        $block_type->attributes = array();
    }
    if ($has_typography_support && !array_key_exists('style', $block_type->attributes)) {
        $block_type->attributes['style'] = array('type' => 'object');
    }
    if ($has_font_size_support && !array_key_exists('fontSize', $block_type->attributes)) {
        $block_type->attributes['fontSize'] = array('type' => 'string');
    }
    if ($has_font_family_support && !array_key_exists('fontFamily', $block_type->attributes)) {
        $block_type->attributes['fontFamily'] = array('type' => 'string');
    }
}

WordPress Version: 6.3

/**
 * Typography block support flag.
 *
 * @package WordPress
 * @since 5.6.0
 */
/**
 * Registers the style and typography block attributes for block types that support it.
 *
 * @since 5.6.0
 * @since 6.3.0 Added support for text-columns.
 * @access private
 *
 * @param WP_Block_Type $block_type Block Type.
 */
function wp_register_typography_support($block_type)
{
    if (!property_exists($block_type, 'supports')) {
        return;
    }
    $typography_supports = _wp_array_get($block_type->supports, array('typography'), false);
    if (!$typography_supports) {
        return;
    }
    $has_font_family_support = _wp_array_get($typography_supports, array('__experimentalFontFamily'), false);
    $has_font_size_support = _wp_array_get($typography_supports, array('fontSize'), false);
    $has_font_style_support = _wp_array_get($typography_supports, array('__experimentalFontStyle'), false);
    $has_font_weight_support = _wp_array_get($typography_supports, array('__experimentalFontWeight'), false);
    $has_letter_spacing_support = _wp_array_get($typography_supports, array('__experimentalLetterSpacing'), false);
    $has_line_height_support = _wp_array_get($typography_supports, array('lineHeight'), false);
    $has_text_columns_support = _wp_array_get($typography_supports, array('textColumns'), false);
    $has_text_decoration_support = _wp_array_get($typography_supports, array('__experimentalTextDecoration'), false);
    $has_text_transform_support = _wp_array_get($typography_supports, array('__experimentalTextTransform'), false);
    $has_typography_support = $has_font_family_support || $has_font_size_support || $has_font_style_support || $has_font_weight_support || $has_letter_spacing_support || $has_line_height_support || $has_text_columns_support || $has_text_decoration_support || $has_text_transform_support;
    if (!$block_type->attributes) {
        $block_type->attributes = array();
    }
    if ($has_typography_support && !array_key_exists('style', $block_type->attributes)) {
        $block_type->attributes['style'] = array('type' => 'object');
    }
    if ($has_font_size_support && !array_key_exists('fontSize', $block_type->attributes)) {
        $block_type->attributes['fontSize'] = array('type' => 'string');
    }
    if ($has_font_family_support && !array_key_exists('fontFamily', $block_type->attributes)) {
        $block_type->attributes['fontFamily'] = array('type' => 'string');
    }
}

WordPress Version: 6.1

/**
 * Typography block support flag.
 *
 * @package WordPress
 * @since 5.6.0
 */
/**
 * Registers the style and typography 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_typography_support($block_type)
{
    if (!property_exists($block_type, 'supports')) {
        return;
    }
    $typography_supports = _wp_array_get($block_type->supports, array('typography'), false);
    if (!$typography_supports) {
        return;
    }
    $has_font_family_support = _wp_array_get($typography_supports, array('__experimentalFontFamily'), false);
    $has_font_size_support = _wp_array_get($typography_supports, array('fontSize'), false);
    $has_font_style_support = _wp_array_get($typography_supports, array('__experimentalFontStyle'), false);
    $has_font_weight_support = _wp_array_get($typography_supports, array('__experimentalFontWeight'), false);
    $has_letter_spacing_support = _wp_array_get($typography_supports, array('__experimentalLetterSpacing'), false);
    $has_line_height_support = _wp_array_get($typography_supports, array('lineHeight'), false);
    $has_text_decoration_support = _wp_array_get($typography_supports, array('__experimentalTextDecoration'), false);
    $has_text_transform_support = _wp_array_get($typography_supports, array('__experimentalTextTransform'), false);
    $has_typography_support = $has_font_family_support || $has_font_size_support || $has_font_style_support || $has_font_weight_support || $has_letter_spacing_support || $has_line_height_support || $has_text_decoration_support || $has_text_transform_support;
    if (!$block_type->attributes) {
        $block_type->attributes = array();
    }
    if ($has_typography_support && !array_key_exists('style', $block_type->attributes)) {
        $block_type->attributes['style'] = array('type' => 'object');
    }
    if ($has_font_size_support && !array_key_exists('fontSize', $block_type->attributes)) {
        $block_type->attributes['fontSize'] = array('type' => 'string');
    }
    if ($has_font_family_support && !array_key_exists('fontFamily', $block_type->attributes)) {
        $block_type->attributes['fontFamily'] = array('type' => 'string');
    }
}

WordPress Version: 5.9

/**
 * Typography block support flag.
 *
 * @package WordPress
 * @since 5.6.0
 */
/**
 * Registers the style and typography 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_typography_support($block_type)
{
    if (!property_exists($block_type, 'supports')) {
        return;
    }
    $typography_supports = _wp_array_get($block_type->supports, array('typography'), false);
    if (!$typography_supports) {
        return;
    }
    $has_font_family_support = _wp_array_get($typography_supports, array('__experimentalFontFamily'), false);
    $has_font_size_support = _wp_array_get($typography_supports, array('fontSize'), false);
    $has_font_style_support = _wp_array_get($typography_supports, array('__experimentalFontStyle'), false);
    $has_font_weight_support = _wp_array_get($typography_supports, array('__experimentalFontWeight'), false);
    $has_letter_spacing_support = _wp_array_get($typography_supports, array('__experimentalLetterSpacing'), false);
    $has_line_height_support = _wp_array_get($typography_supports, array('lineHeight'), false);
    $has_text_decoration_support = _wp_array_get($typography_supports, array('__experimentalTextDecoration'), false);
    $has_text_transform_support = _wp_array_get($typography_supports, array('__experimentalTextTransform'), false);
    $has_typography_support = $has_font_family_support || $has_font_size_support || $has_font_style_support || $has_font_weight_support || $has_letter_spacing_support || $has_line_height_support || $has_text_decoration_support || $has_text_transform_support;
    if (!$block_type->attributes) {
        $block_type->attributes = array();
    }
    if ($has_typography_support && !array_key_exists('style', $block_type->attributes)) {
        $block_type->attributes['style'] = array('type' => 'object');
    }
    if ($has_font_size_support && !array_key_exists('fontSize', $block_type->attributes)) {
        $block_type->attributes['fontSize'] = array('type' => 'string');
    }
}

WordPress Version: 5.8

/**
 * Typography block support flag.
 *
 * @package WordPress
 * @since 5.6.0
 */
/**
 * Registers the style and typography 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_typography_support($block_type)
{
    if (!property_exists($block_type, 'supports')) {
        return;
    }
    $typography_supports = _wp_array_get($block_type->supports, array('typography'), false);
    if (!$typography_supports) {
        return;
    }
    $has_font_family_support = _wp_array_get($typography_supports, array('__experimentalFontFamily'), false);
    $has_font_size_support = _wp_array_get($typography_supports, array('fontSize'), false);
    $has_font_style_support = _wp_array_get($typography_supports, array('__experimentalFontStyle'), false);
    $has_font_weight_support = _wp_array_get($typography_supports, array('__experimentalFontWeight'), false);
    $has_line_height_support = _wp_array_get($typography_supports, array('lineHeight'), false);
    $has_text_decoration_support = _wp_array_get($typography_supports, array('__experimentalTextDecoration'), false);
    $has_text_transform_support = _wp_array_get($typography_supports, array('__experimentalTextTransform'), false);
    $has_typography_support = $has_font_family_support || $has_font_size_support || $has_font_style_support || $has_font_weight_support || $has_line_height_support || $has_text_decoration_support || $has_text_transform_support;
    if (!$block_type->attributes) {
        $block_type->attributes = array();
    }
    if ($has_typography_support && !array_key_exists('style', $block_type->attributes)) {
        $block_type->attributes['style'] = array('type' => 'object');
    }
    if ($has_font_size_support && !array_key_exists('fontSize', $block_type->attributes)) {
        $block_type->attributes['fontSize'] = array('type' => 'string');
    }
}

WordPress Version: 5.6

/**
 * Typography block support flag.
 *
 * @package WordPress
 */
/**
 * Registers the style and typography block attributes for block types that support it.
 *
 * @access private
 *
 * @param WP_Block_Type $block_type Block Type.
 */
function wp_register_typography_support($block_type)
{
    $has_font_size_support = false;
    if (property_exists($block_type, 'supports')) {
        $has_font_size_support = _wp_array_get($block_type->supports, array('__experimentalFontSize'), false);
    }
    $has_line_height_support = false;
    if (property_exists($block_type, 'supports')) {
        $has_line_height_support = _wp_array_get($block_type->supports, array('__experimentalLineHeight'), false);
    }
    if (!$block_type->attributes) {
        $block_type->attributes = array();
    }
    if (($has_font_size_support || $has_line_height_support) && !array_key_exists('style', $block_type->attributes)) {
        $block_type->attributes['style'] = array('type' => 'object');
    }
    if ($has_font_size_support && !array_key_exists('fontSize', $block_type->attributes)) {
        $block_type->attributes['fontSize'] = array('type' => 'string');
    }
}