Editor: allow registering block styles for multiple block types.
Updates the `WP_Block_Styles_Registry` class to allow registering an array of blocks. Props aaronrobertshaw, talldanwp, isabel_brison. Fixes #61274. Built from https://develop.svn.wordpress.org/trunk@58246 git-svn-id: http://core.svn.wordpress.org/trunk@57709 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
bfab5160b3
commit
6eec46900f
|
@ -1902,14 +1902,16 @@ function block_version( $content ) {
|
||||||
* Registers a new block style.
|
* Registers a new block style.
|
||||||
*
|
*
|
||||||
* @since 5.3.0
|
* @since 5.3.0
|
||||||
|
* @since 6.6.0 Updated types as registry now allows registering styles for multiple block types at once.
|
||||||
*
|
*
|
||||||
* @link https://developer.wordpress.org/block-editor/reference-guides/block-api/block-styles/
|
* @link https://developer.wordpress.org/block-editor/reference-guides/block-api/block-styles/
|
||||||
*
|
*
|
||||||
* @param string $block_name Block type name including namespace.
|
* @param string|array $block_name Block type name including namespace or array of namespaced block type names.
|
||||||
* @param array $style_properties Array containing the properties of the style name, label,
|
* @param array $style_properties Array containing the properties of the style name, label,
|
||||||
* style_handle (name of the stylesheet to be enqueued),
|
* style_handle (name of the stylesheet to be enqueued),
|
||||||
* inline_style (string containing the CSS to be added).
|
* inline_style (string containing the CSS to be added),
|
||||||
* See WP_Block_Styles_Registry::register().
|
* style_data (theme.json-like array to generate CSS from).
|
||||||
|
* See WP_Block_Styles_Registry::register().
|
||||||
* @return bool True if the block style was registered with success and false otherwise.
|
* @return bool True if the block style was registered with success and false otherwise.
|
||||||
*/
|
*/
|
||||||
function register_block_style( $block_name, $style_properties ) {
|
function register_block_style( $block_name, $style_properties ) {
|
||||||
|
|
|
@ -42,11 +42,12 @@ final class WP_Block_Styles_Registry {
|
||||||
* or with an inline tag.
|
* or with an inline tag.
|
||||||
*
|
*
|
||||||
* @since 5.3.0
|
* @since 5.3.0
|
||||||
|
* @since 6.6.0 Added ability to register style across multiple block types along with theme.json-like style data.
|
||||||
*
|
*
|
||||||
* @link https://developer.wordpress.org/block-editor/reference-guides/block-api/block-styles/
|
* @link https://developer.wordpress.org/block-editor/reference-guides/block-api/block-styles/
|
||||||
*
|
*
|
||||||
* @param string $block_name Block type name including namespace.
|
* @param string|array $block_name Block type name including namespace or array of namespaced block type names.
|
||||||
* @param array $style_properties {
|
* @param array $style_properties {
|
||||||
* Array containing the properties of the style.
|
* Array containing the properties of the style.
|
||||||
*
|
*
|
||||||
* @type string $name The identifier of the style used to compute a CSS class.
|
* @type string $name The identifier of the style used to compute a CSS class.
|
||||||
|
@ -56,16 +57,17 @@ final class WP_Block_Styles_Registry {
|
||||||
* @type string $style_handle The handle to an already registered style that should be
|
* @type string $style_handle The handle to an already registered style that should be
|
||||||
* enqueued in places where block styles are needed.
|
* enqueued in places where block styles are needed.
|
||||||
* @type bool $is_default Whether this is the default style for the block type.
|
* @type bool $is_default Whether this is the default style for the block type.
|
||||||
|
* @type array $style_data Theme.json-like object to generate CSS from.
|
||||||
* }
|
* }
|
||||||
* @return bool True if the block style was registered with success and false otherwise.
|
* @return bool True if the block style was registered with success and false otherwise.
|
||||||
*/
|
*/
|
||||||
public function register( $block_name, $style_properties ) {
|
public function register( $block_name, $style_properties ) {
|
||||||
|
|
||||||
if ( ! isset( $block_name ) || ! is_string( $block_name ) ) {
|
if ( ! is_string( $block_name ) && ! is_array( $block_name ) ) {
|
||||||
_doing_it_wrong(
|
_doing_it_wrong(
|
||||||
__METHOD__,
|
__METHOD__,
|
||||||
__( 'Block name must be a string.' ),
|
__( 'Block name must be a string or array.' ),
|
||||||
'5.3.0'
|
'6.6.0'
|
||||||
);
|
);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -89,11 +91,14 @@ final class WP_Block_Styles_Registry {
|
||||||
}
|
}
|
||||||
|
|
||||||
$block_style_name = $style_properties['name'];
|
$block_style_name = $style_properties['name'];
|
||||||
|
$block_names = is_string( $block_name ) ? array( $block_name ) : $block_name;
|
||||||
|
|
||||||
if ( ! isset( $this->registered_block_styles[ $block_name ] ) ) {
|
foreach ( $block_names as $name ) {
|
||||||
$this->registered_block_styles[ $block_name ] = array();
|
if ( ! isset( $this->registered_block_styles[ $name ] ) ) {
|
||||||
|
$this->registered_block_styles[ $name ] = array();
|
||||||
|
}
|
||||||
|
$this->registered_block_styles[ $name ][ $block_style_name ] = $style_properties;
|
||||||
}
|
}
|
||||||
$this->registered_block_styles[ $block_name ][ $block_style_name ] = $style_properties;
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
*
|
*
|
||||||
* @global string $wp_version
|
* @global string $wp_version
|
||||||
*/
|
*/
|
||||||
$wp_version = '6.6-alpha-58245';
|
$wp_version = '6.6-alpha-58246';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
||||||
|
|
Loading…
Reference in New Issue