block_core_navigation_typographic_presets_backcompatibility

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

WordPress Version: 5.9

/**
 * Filter that changes the parsed attribute values of navigation blocks contain typographic presets to contain the values directly.
 *
 * @param array $parsed_block The block being rendered.
 *
 * @return array The block being rendered without typographic presets.
 */
function block_core_navigation_typographic_presets_backcompatibility($parsed_block)
{
    if ('core/navigation' === $parsed_block['blockName']) {
        $attribute_to_prefix_map = array('fontStyle' => 'var:preset|font-style|', 'fontWeight' => 'var:preset|font-weight|', 'textDecoration' => 'var:preset|text-decoration|', 'textTransform' => 'var:preset|text-transform|');
        foreach ($attribute_to_prefix_map as $style_attribute => $prefix) {
            if (!empty($parsed_block['attrs']['style']['typography'][$style_attribute])) {
                $prefix_len = strlen($prefix);
                $attribute_value =& $parsed_block['attrs']['style']['typography'][$style_attribute];
                if (0 === strncmp($attribute_value, $prefix, $prefix_len)) {
                    $attribute_value = substr($attribute_value, $prefix_len);
                }
                if ('textDecoration' === $style_attribute && 'strikethrough' === $attribute_value) {
                    $attribute_value = 'line-through';
                }
            }
        }
    }
    return $parsed_block;
}