wp_style_engine_get_stylesheet_from_css_rules()WP 6.1.0

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}

Хуков нет.

Возвращает

Строку. A string of compiled CSS declarations, or empty string.

Использование

wp_style_engine_get_stylesheet_from_css_rules( $css_rules, $options );
$css_rules(массив) (обязательный)

Required. A collection of CSS rules.

  • ...$0(массив)

    • selector(строка)
      A CSS selector.

    • declarations(string[])
      An associative array of CSS definitions, e.g. array( "$property" => "$value", "$property" => "$value" ).
$options(массив)

An array of options.

По умолчанию: empty array

  • context(строка|null)
    An identifier describing the origin of the style object, e.g. 'block-supports' or 'global-styles'. When set, the style engine will attempt to store the CSS rules.
    По умолчанию: 'block-supports'

  • optimize(true|false)
    Whether to optimize the CSS output, e.g. combine rules.
    По умолчанию: false

  • prettify(true|false)
    Whether to add new lines and indents to output.
    По умолчанию: whether the SCRIPT_DEBUG constant is defined

Список изменений

С версии 6.1.0 Введена.

Код wp_style_engine_get_stylesheet_from_css_rules() WP 6.5.2

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 );
}