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');
}
}