WP_Block_Styles_Registry::register( string|string[] $block_name, array $style_properties ): bool

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.
  • name string
    The identifier of the style used to compute a CSS class.
  • label string
    A human-readable label for the style.
  • inline_style string
    Inline CSS code that registers the CSS class required for the style.
  • style_handle string
    The handle to an already registered style that should be enqueued in places where block styles are needed.
  • is_default bool
    Whether this is the default style for the block type.
  • style_data array
    Theme.json-like object to generate CSS from.

Return

bool True if the block style was registered with success and false otherwise.

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;

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

Changelog

VersionDescription
6.6.0Added ability to register style across multiple block types along with theme.json-like style data.
5.3.0Introduced.

User Contributed Notes

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