_inject_theme_attribute_in_block_template_content()
Deprecated since 6.4.0. It is no longer supported and may be removed in future releases. Use
traverse_and_serialize_blocks( parse_blocks( $template_content ), '_inject_theme_attribute_in_template_part_block' ) instead.Parses wp_template content and injects the active theme's stylesheet as a theme attribute into each wp_template_part
Internal function — this function is designed to be used by the kernel itself. It is not recommended to use this function in your code.
No Hooks.
Returns
String. Updated 'wp_template' content.
Usage
_inject_theme_attribute_in_block_template_content( $template_content );
- $template_content(string) (required)
- serialized wp_template content.
Changelog
| Since 5.9.0 | Introduced. |
| Deprecated since 6.4.0 | Use traverse_and_serialize_blocks( parse_blocks( $template_content ), '_inject_theme_attribute_in_template_part_block' ) instead. |
_inject_theme_attribute_in_block_template_content() inject theme attribute in block template content code WP 6.9
function _inject_theme_attribute_in_block_template_content( $template_content ) {
_deprecated_function(
__FUNCTION__,
'6.4.0',
'traverse_and_serialize_blocks( parse_blocks( $template_content ), "_inject_theme_attribute_in_template_part_block" )'
);
$has_updated_content = false;
$new_content = '';
$template_blocks = parse_blocks( $template_content );
$blocks = _flatten_blocks( $template_blocks );
foreach ( $blocks as &$block ) {
if (
'core/template-part' === $block['blockName'] &&
! isset( $block['attrs']['theme'] )
) {
$block['attrs']['theme'] = get_stylesheet();
$has_updated_content = true;
}
}
if ( $has_updated_content ) {
foreach ( $template_blocks as &$block ) {
$new_content .= serialize_block( $block );
}
return $new_content;
}
return $template_content;
}