wpseek.com
A WordPress-centric search engine for devs and theme authors



wp_render_custom_css_class_name › WordPress Function

Since7.0.0
Deprecatedn/a
› wp_render_custom_css_class_name ( $block_content, $block )
Parameters: (2)
  • (string) $block_content Rendered block content.
    Required: Yes
  • (array) $block Block object.
    Required: Yes
Returns:
  • (string) Filtered block content.
Defined at:
Codex:
Change Log:
  • 7.2.0

Applies the custom CSS class name to the block's rendered HTML.

Uses the class name that wp_render_custom_css_support_styles stored in the block attributes. Blocks that a parent parsed and rendered itself never reach that filter, so the class name is generated here instead via wp_generate_custom_css_class_name.


Source

function wp_render_custom_css_class_name( $block_content, $block ) {
	$class_name_attr    = $block['attrs']['className'] ?? null;
	$class_name_prefix  = 'wp-custom-css-';
	$matched_class_name = null;

	// Parse out the 'wp-custom-css-*' class name added by wp_render_custom_css_support_styles().
	if ( is_string( $class_name_attr ) && str_contains( $class_name_attr, $class_name_prefix ) ) {
		$token_delimiter = " \t\f\r\n";
		$class_token     = strtok( $class_name_attr, $token_delimiter );
		while ( false !== $class_token ) {
			if ( str_starts_with( $class_token, $class_name_prefix ) ) {
				$matched_class_name = $class_token;
				break;
			}
			$class_token = strtok( $token_delimiter );
		}
	}

	// Direct WP_Block::render() calls skip render_block_data for the block itself.
	if ( null === $matched_class_name ) {
		$matched_class_name = wp_generate_custom_css_class_name( $block );
	}

	if ( null === $matched_class_name ) {
		return $block_content;
	}

	$tags = new WP_HTML_Tag_Processor( $block_content );
	if ( $tags->next_tag() ) {
		$tags->add_class( 'has-custom-css' );
		$tags->add_class( $matched_class_name );
	}

	return $tags->get_updated_html();
}