# wp_style_engine_get_stylesheet_from_css_rules()

URL: https://chugunov.pro/api-wordpress/functions/wp_style_engine_get_stylesheet_from_css_rules/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 6.1.0.

## Сигнатура

```php
wp_style_engine_get_stylesheet_from_css_rules( array $css_rules, array $options = array() ): string
```

## Описание

Полезно для получения скомпилированной таблицы стилей из любого набора «CSS-селектор + объявления».
Пример использования:
$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 );Возвращает:
.elephant-are-cool{color:gray;width:3em}

## Параметры

- `$css_rules` `array` — обязательный. Required. A collection of CSS rules.
  
  ...$0 array
  rules_group stringA parent CSS selector in the case of nested CSS, or a CSS nested @rule, such as @media (min-width: 80rem) or @layer module.
  
  selector stringA CSS selector.
  
  declarations string[]An associative array of CSS definitions, e.g. array( "$property" => "$value", "$property" => "$value" ).
  
  $optionsarrayoptionalAn array of options.
  
  context string|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.
  
  optimize boolWhether to optimize the CSS output, e.g. combine rules.
  
  Default false.
  
  prettify boolWhether to add new lines and indents to output.
  
  Defaults to whether the SCRIPT_DEBUG constant is defined.
  
  Default:array()
  
  Return string A string of compiled CSS declarations, or empty string.
  
  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 );
  }
  View all references View on Trac View on GitHub
  
  Related UsesDescriptionWP_Style_Engine_CSS_Rule::__TOKEN_4__wp-includes/style-engine/class-wp-style-engine-css-rule.phpConstructor.
  
  WP_Style_Engine::__TOKEN_5__wp-includes/style-engine/class-wp-style-engine.phpReturns a compiled stylesheet from stored CSS rules.
  
  WP_Style_Engine::__TOKEN_6__wp-includes/style-engine/class-wp-style-engine.phpStores a CSS rule using the provided CSS selector and CSS declarations.
  
  wp_parse_args()wp-includes/functions.phpMerges user defined arguments into defaults array.
  
  Show 1 moreShow less Used byDescriptionWP_Duotone::__TOKEN_8__wp-includes/class-wp-duotone.phpAppends the used block duotone filter declarations to the inline block supports CSS.
  
  WP_Duotone::__TOKEN_9__wp-includes/class-wp-duotone.phpOutputs all necessary SVG for duotone filters, CSS for classic themes.
  
  Changelog VersionDescription6.6.0Added support for $rules_group in the $css_rules array.6.1.0Introduced.

## Возвращаемое значение

`string`

## Исходный код

Файл: `wp-includes/style-engine.php:142`

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

## История изменений

- 6.6.0 — Added support for $rules_group in the $css_rules array.
- 6.1.0 — Introduced.

## Связанные

Использует: `WP_Style_Engine_CSS_Rule::__construct`, `WP_Style_Engine::compile_stylesheet_from_css_rules`, `WP_Style_Engine::store_css_rule`, [`wp_parse_args`](https://chugunov.pro/api-wordpress/functions/wp_parse_args/).
Используется в: `WP_Duotone::output_block_styles`, `WP_Duotone::output_footer_assets`.

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/wp_style_engine_get_stylesheet_from_css_rules/
