wp_style_engine_get_stylesheet_from_css_rules

The timeline below displays how wordpress function wp_style_engine_get_stylesheet_from_css_rules has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.4

/**
 * Returns compiled CSS from a collection of selectors and declarations.
 * 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}
 *
 * @since 6.1.0
 *
 * @param array $css_rules {
 *     Required. A collection of CSS rules.
 *
 *     @type array ...$0 {
 *         @type string   $selector     A CSS selector.
 *         @type string[] $declarations An associative array of CSS definitions,
 *                                      e.g. `array( "$property" => "$value", "$property" => "$value" )`.
 *     }
 * }
 * @param array $options {
 *     Optional. An array of options. Default empty array.
 *
 *     @type string|null $context  An 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.
 *     @type bool        $optimize Whether to optimize the CSS output, e.g. combine rules.
 *                                 Default false.
 *     @type bool        $prettify Whether to add new lines and indents to output.
 *                                 Defaults to whether the `SCRIPT_DEBUG` constant is defined.
 * }
 * @return string A string of compiled CSS declarations, or empty string.
 */
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;
        }
        if (!empty($options['context'])) {
            WP_Style_Engine::store_css_rule($options['context'], $css_rule['selector'], $css_rule['declarations']);
        }
        $css_rule_objects[] = new WP_Style_Engine_CSS_Rule($css_rule['selector'], $css_rule['declarations']);
    }
    if (empty($css_rule_objects)) {
        return '';
    }
    return WP_Style_Engine::compile_stylesheet_from_css_rules($css_rule_objects, $options);
}

WordPress Version: 6.3

/**
 * Returns compiled CSS from a collection of selectors and declarations.
 * 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}
 *
 * @since 6.1.0
 *
 * @param array $css_rules {
 *     Required. A collection of CSS rules.
 *
 *     @type array ...$0 {
 *         @type string   $selector     A CSS selector.
 *         @type string[] $declarations An associative array of CSS definitions,
 *                                      e.g. `array( "$property" => "$value", "$property" => "$value" )`.
 *     }
 * }
 * @param array $options {
 *     Optional. An array of options. Default empty array.
 *
 *     @type string|null $context  An 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.
 *     @type bool        $optimize Whether to optimize the CSS output, e.g. combine rules.
 *                                 Default true.
 *     @type bool        $prettify Whether to add new lines and indents to output.
 *                                 Defaults to whether the `SCRIPT_DEBUG` constant is defined.
 * }
 * @return string A string of compiled CSS declarations, or empty string.
 */
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;
        }
        if (!empty($options['context'])) {
            WP_Style_Engine::store_css_rule($options['context'], $css_rule['selector'], $css_rule['declarations']);
        }
        $css_rule_objects[] = new WP_Style_Engine_CSS_Rule($css_rule['selector'], $css_rule['declarations']);
    }
    if (empty($css_rule_objects)) {
        return '';
    }
    return WP_Style_Engine::compile_stylesheet_from_css_rules($css_rule_objects, $options);
}

WordPress Version: 6.1

/**
 * Returns compiled CSS from a collection of selectors and declarations.
 * 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}`.
 *
 * @since 6.1.0
 *
 * @param array $css_rules {
 *     Required. A collection of CSS rules.
 *
 *     @type array ...$0 {
 *         @type string   $selector     A CSS selector.
 *         @type string[] $declarations An associative array of CSS definitions, e.g., array( "$property" => "$value", "$property" => "$value" ).
 *     }
 * }
 * @param array $options {
 *     Optional. An array of options. Default empty array.
 *
 *     @type string|null $context  An identifier describing the origin of the style object, e.g., 'block-supports' or 'global-styles'. Default is 'block-supports'.
 *                                 When set, the style engine will attempt to store the CSS rules.
 *     @type bool        $optimize Whether to optimize the CSS output, e.g., combine rules. Default is `false`.
 *     @type bool        $prettify Whether to add new lines and indents to output. Default is the test of whether the global constant `SCRIPT_DEBUG` is defined.
 * }
 *
 * @return string A string of compiled CSS declarations, or empty string.
 */
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;
        }
        if (!empty($options['context'])) {
            WP_Style_Engine::store_css_rule($options['context'], $css_rule['selector'], $css_rule['declarations']);
        }
        $css_rule_objects[] = new WP_Style_Engine_CSS_Rule($css_rule['selector'], $css_rule['declarations']);
    }
    if (empty($css_rule_objects)) {
        return '';
    }
    return WP_Style_Engine::compile_stylesheet_from_css_rules($css_rule_objects, $options);
}