_inject_theme_attribute_in_block_template_content( string $template_content ): string

In this article

This function has been deprecated. Use traverse_and_serialize_blocks( parse_blocks( $template_content ), ‘_inject_theme_attribute_in_template_part_block’ ) instead.

This function’s access is marked private. This means it is not intended for use by plugin or theme developers, only in other core functions. It is listed here for completeness.

Parses wp_template content and injects the active theme’s stylesheet as a theme attribute into each wp_template_part

Parameters

$template_contentstringrequired
serialized wp_template content.

Return

string Updated 'wp_template' content.

Source

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

Changelog

VersionDescription
6.4.0Use traverse_and_serialize_blocks( parse_blocks( $template_content ), '_inject_theme_attribute_in_template_part_block' ) instead.
5.9.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.