Registers a block style for the given block type.
Description
If the block styles are present in a standalone stylesheet, register it and pass its handle as the style_handle argument. If the block styles should be inline, use the inline_style argument. Usually, one of them would be used to pass CSS styles. However, you could also skip them and provide CSS styles in any stylesheet or with an inline tag.
Parameters
$block_namestring|string[]required- Block type name including namespace or array of namespaced block type names.
$style_propertiesarrayrequired- Array containing the properties of the style.
namestringThe identifier of the style used to compute a CSS class.labelstringA human-readable label for the style.inline_stylestringInline CSS code that registers the CSS class required for the style.style_handlestringThe handle to an already registered style that should be enqueued in places where block styles are needed.is_defaultboolWhether this is the default style for the block type.style_dataarrayTheme.json-like object to generate CSS from.
Source
public function register( $block_name, $style_properties ) {
if ( ! is_string( $block_name ) && ! is_array( $block_name ) ) {
_doing_it_wrong(
__METHOD__,
__( 'Block name must be a string or array.' ),
'6.6.0'
);
return false;
}
if ( ! isset( $style_properties['name'] ) || ! is_string( $style_properties['name'] ) ) {
_doing_it_wrong(
__METHOD__,
__( 'Block style name must be a string.' ),
'5.3.0'
);
return false;
}
if ( str_contains( $style_properties['name'], ' ' ) ) {
_doing_it_wrong(
__METHOD__,
__( 'Block style name must not contain any spaces.' ),
'5.9.0'
);
return false;
}
$block_style_name = $style_properties['name'];
$block_names = is_string( $block_name ) ? array( $block_name ) : $block_name;
// Ensure there is a label defined.
if ( empty( $style_properties['label'] ) ) {
$style_properties['label'] = $block_style_name;
}
foreach ( $block_names as $name ) {
if ( ! isset( $this->registered_block_styles[ $name ] ) ) {
$this->registered_block_styles[ $name ] = array();
}
$this->registered_block_styles[ $name ][ $block_style_name ] = $style_properties;
}
return true;
}
User Contributed Notes
You must log in before being able to contribute a note or feedback.