Spaces:
Sleeping
Sleeping
/** | |
* Generated classname block support flag. | |
* | |
* @package WordPress | |
* @since 5.6.0 | |
*/ | |
/** | |
* Gets the generated classname from a given block name. | |
* | |
* @since 5.6.0 | |
* | |
* @access private | |
* | |
* @param string $block_name Block Name. | |
* @return string Generated classname. | |
*/ | |
function wp_get_block_default_classname( $block_name ) { | |
// Generated HTML classes for blocks follow the `wp-block-{name}` nomenclature. | |
// Blocks provided by WordPress drop the prefixes 'core/' or 'core-' (historically used in 'core-embed/'). | |
$classname = 'wp-block-' . preg_replace( | |
'/^core-/', | |
'', | |
str_replace( '/', '-', $block_name ) | |
); | |
/** | |
* Filters the default block className for server rendered blocks. | |
* | |
* @since 5.6.0 | |
* | |
* @param string $class_name The current applied classname. | |
* @param string $block_name The block name. | |
*/ | |
$classname = apply_filters( 'block_default_classname', $classname, $block_name ); | |
return $classname; | |
} | |
/** | |
* Adds the generated classnames to the output. | |
* | |
* @since 5.6.0 | |
* | |
* @access private | |
* | |
* @param WP_Block_Type $block_type Block Type. | |
* @return array Block CSS classes and inline styles. | |
*/ | |
function wp_apply_generated_classname_support( $block_type ) { | |
$attributes = array(); | |
$has_generated_classname_support = block_has_support( $block_type, 'className', true ); | |
if ( $has_generated_classname_support ) { | |
$block_classname = wp_get_block_default_classname( $block_type->name ); | |
if ( $block_classname ) { | |
$attributes['class'] = $block_classname; | |
} | |
} | |
return $attributes; | |
} | |
// Register the block support. | |
WP_Block_Supports::get_instance()->register( | |
'generated-classname', | |
array( | |
'apply' => 'wp_apply_generated_classname_support', | |
) | |
); | |