Returns compiled CSS from a collection of selectors and declarations.
Description
Useful for returning a compiled stylesheet from any collection of CSS selector + declarations.
Example usage:
$css_rules = array(
array(
'selector' => '.elephant-are-cool',
'declarations' => array(
'color' => 'gray',
'width' => '3em',
),
),
);
$css = wp_style_engine_get_stylesheet_from_css_rules( $css_rules ); Returns:
.elephant-are-cool{color:gray;width:3em}Parameters
$css_rulesarrayrequired- Required. A collection of CSS rules.
...$0arrayrules_groupstringA parent CSS selector in the case of nested CSS, or a CSS nested @rule, such as@media (min-width: 80rem)or@layer module.selectorstringA CSS selector.declarationsstring[]An associative array of CSS definitions, e.g.array( "$property" => "$value", "$property" => "$value" ).
$optionsarrayoptionalAn array of options.
contextstring|nullAn identifier describing the origin of the style object, e.g.'block-supports'or'global-styles'. Default'block-supports'.
When set, the style engine will attempt to store the CSS rules.optimizeboolWhether to optimize the CSS output, e.g. combine rules.
Default false.prettifyboolWhether to add new lines and indents to output.
Defaults to whether theSCRIPT_DEBUGconstant is defined.
Default:
array()Source
function wp_style_engine_get_stylesheet_from_css_rules( $css_rules, $options = array() ) { if ( empty( $css_rules ) ) { return ''; } $options = wp_parse_args( $options, array( 'context' => null, ) ); $css_rule_objects = array(); foreach ( $css_rules as $css_rule ) { if ( empty( $css_rule['selector'] ) || empty( $css_rule['declarations'] ) || ! is_array( $css_rule['declarations'] ) ) { continue; } $rules_group = $css_rule['rules_group'] ?? null; if ( ! empty( $options['context'] ) ) { WP_Style_Engine::store_css_rule( $options['context'], $css_rule['selector'], $css_rule['declarations'], $rules_group ); } $css_rule_objects[] = new WP_Style_Engine_CSS_Rule( $css_rule['selector'], $css_rule['declarations'], $rules_group ); } if ( empty( $css_rule_objects ) ) { return ''; } return WP_Style_Engine::compile_stylesheet_from_css_rules( $css_rule_objects, $options ); }Changelog
User Contributed Notes
You must log in before being able to contribute a note or feedback.