WordPress Version: 6.4
/**
* Parses a block template and removes the theme attribute from each template part.
*
* @since 5.9.0
* @deprecated 6.4.0 Use traverse_and_serialize_blocks( parse_blocks( $template_content ), '_remove_theme_attribute_from_template_part_block' ) instead.
* @access private
*
* @param string $template_content Serialized block template content.
* @return string Updated block template content.
*/
function _remove_theme_attribute_in_block_template_content($template_content)
{
_deprecated_function(__FUNCTION__, '6.4.0', 'traverse_and_serialize_blocks( parse_blocks( $template_content ), "_remove_theme_attribute_from_template_part_block" )');
$has_updated_content = false;
$new_content = '';
$template_blocks = parse_blocks($template_content);
$blocks = _flatten_blocks($template_blocks);
foreach ($blocks as $key => $block) {
if ('core/template-part' === $block['blockName'] && isset($block['attrs']['theme'])) {
unset($blocks[$key]['attrs']['theme']);
$has_updated_content = true;
}
}
if (!$has_updated_content) {
return $template_content;
}
foreach ($template_blocks as $block) {
$new_content .= serialize_block($block);
}
return $new_content;
}