Global public interface method to generate styles from a single style object, e.g. the value of a block’s attributes.style object or the top level styles in theme.json.
Description
Example usage:
$styles = wp_style_engine_get_styles(
array(
'color' => array( 'text' => '#cccccc' ),
)
);
Returns:
array(
'css' => 'color: #cccccc',
'declarations' => array( 'color' => '#cccccc' ),
'classnames' => 'has-color',
)
See also
Parameters
$block_styles
arrayrequired- The style object.
$options
arrayoptional- An array of options.
context
string|nullAn identifier describing the origin of the style object, e.g.'block-supports'
or'global-styles'
. Default null.
When set, the style engine will attempt to store the CSS rules, where a selector is also passed.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.
Default:
array()
Source
function wp_style_engine_get_styles( $block_styles, $options = array() ) {
$options = wp_parse_args(
$options,
array(
'selector' => null,
'context' => null,
'convert_vars_to_classnames' => false,
)
);
$parsed_styles = WP_Style_Engine::parse_block_styles( $block_styles, $options );
// Output.
$styles_output = array();
if ( ! empty( $parsed_styles['declarations'] ) ) {
$styles_output['css'] = WP_Style_Engine::compile_css( $parsed_styles['declarations'], $options['selector'] );
$styles_output['declarations'] = $parsed_styles['declarations'];
if ( ! empty( $options['context'] ) ) {
WP_Style_Engine::store_css_rule( $options['context'], $options['selector'], $parsed_styles['declarations'] );
}
}
if ( ! empty( $parsed_styles['classnames'] ) ) {
$styles_output['classnames'] = implode( ' ', array_unique( $parsed_styles['classnames'] ) );
}
return array_filter( $styles_output );
}
Changelog
Version | Description |
---|---|
6.1.0 | Introduced. |
User Contributed Notes
You must log in before being able to contribute a note or feedback.