_remove_theme_attribute_in_block_template_content

函数
_remove_theme_attribute_in_block_template_content ( $template_content )
Access
Private
参数
  • (string) $template_content Serialized block template content.
    Required:
返回值
  • (string) Updated block template content.
定义位置
相关方法
_inject_theme_attribute_in_block_template_content_resolve_home_block_templateget_the_block_template_html_preview_theme_template_filter_register_theme_block_patterns
引入
5.9.0
弃用
-

_remove_theme_attribute_in_block_template_content: 这个函数用于从块模板内容中删除主题属性: 当把区块从一个主题迁移到另一个主题时,这很有用。

解析一个区块模板,并从每个模板部分删除主题属性。

function _remove_theme_attribute_in_block_template_content( $template_content ) {
	$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;
}

常见问题

FAQs
查看更多 >