WP_Style_Engine::parse_block_styles( array $block_styles, array $options ): array
Returns classnames and CSS based on the values in a styles object.
Description
Return values are parsed based on the instructions in BLOCK_STYLE_DEFINITIONS_METADATA.
Parameters
-
$block_styles
array Required -
The style object.
-
$options
array Optional -
An array of options. Default empty array.
convert_vars_to_classnames
boolWhether to skip converting incoming CSS var patterns, e.g.var:preset|<PRESET_TYPE>|<PRESET_SLUG>
, tovar( --wp--preset--* )
values. Default false.selector
stringOptional. When a selector is passed, the value of$css
in the return value will comprise a full CSS rule$selector { ...$css_declarations }
, otherwise, the value will be a concatenated string of CSS declarations.
Return
array
classnames
string[]Array of class names.declarations
string[]An associative array of CSS definitions, e.g.array( "$property" => "$value", "$property" => "$value" )
.
Source
File: wp-includes/style-engine/class-wp-style-engine.php
.
View all references
public static function parse_block_styles( $block_styles, $options ) {
$parsed_styles = array(
'classnames' => array(),
'declarations' => array(),
);
if ( empty( $block_styles ) || ! is_array( $block_styles ) ) {
return $parsed_styles;
}
// Collect CSS and classnames.
foreach ( static::BLOCK_STYLE_DEFINITIONS_METADATA as $definition_group_key => $definition_group_style ) {
if ( empty( $block_styles[ $definition_group_key ] ) ) {
continue;
}
foreach ( $definition_group_style as $style_definition ) {
$style_value = _wp_array_get( $block_styles, $style_definition['path'], null );
if ( ! static::is_valid_style_value( $style_value ) ) {
continue;
}
$parsed_styles['classnames'] = array_merge( $parsed_styles['classnames'], static::get_classnames( $style_value, $style_definition ) );
$parsed_styles['declarations'] = array_merge( $parsed_styles['declarations'], static::get_css_declarations( $style_value, $style_definition, $options ) );
}
}
return $parsed_styles;
}
Changelog
Version | Description |
---|---|
6.1.0 | Introduced. |