WordPress Version: 6.1
/**
* Generates an inline style value for a typography feature e.g. text decoration,
* text transform, and font style.
*
* Note: This function is for backwards compatibility.
* * It is necessary to parse older blocks whose typography styles contain presets.
* * It mostly replaces the deprecated `wp_typography_get_css_variable_inline_style()`,
* but skips compiling a CSS declaration as the style engine takes over this role.
* @link https://github.com/wordpress/gutenberg/pull/27555
*
* @since 6.1.0
*
* @param string $style_value A raw style value for a single typography feature from a block's style attribute.
* @param string $css_property Slug for the CSS property the inline style sets.
* @return string A CSS inline style value.
*/
function wp_typography_get_preset_inline_style_value($style_value, $css_property)
{
// If the style value is not a preset CSS variable go no further.
if (empty($style_value) || !str_contains($style_value, "var:preset|{$css_property}|")) {
return $style_value;
}
/*
* For backwards compatibility.
* Presets were removed in WordPress/gutenberg#27555.
* A preset CSS variable is the style.
* Gets the style value from the string and return CSS style.
*/
$index_to_splice = strrpos($style_value, '|') + 1;
$slug = _wp_to_kebab_case(substr($style_value, $index_to_splice));
// Return the actual CSS inline style value,
// e.g. `var(--wp--preset--text-decoration--underline);`.
return sprintf('var(--wp--preset--%s--%s);', $css_property, $slug);
}