WP_Style_Engine_CSS_Rule::get_csspublicWP 6.1.0

Gets the CSS.

Method of the class: WP_Style_Engine_CSS_Rule{}

No Hooks.

Returns

String.

Usage

$WP_Style_Engine_CSS_Rule = new WP_Style_Engine_CSS_Rule();
$WP_Style_Engine_CSS_Rule->get_css( $should_prettify, $indent_count );
$should_prettify(true|false)
Whether to add spacing, new lines and indents.
Default: false
$indent_count(int)
The number of tab indents to apply to the rule. Applies if prettify is true.

Changelog

Since 6.1.0 Introduced.
Since 6.6.0 Added support for nested CSS with rules groups.

WP_Style_Engine_CSS_Rule::get_css() code WP 6.8.1

public function get_css( $should_prettify = false, $indent_count = 0 ) {
	$rule_indent                = $should_prettify ? str_repeat( "\t", $indent_count ) : '';
	$nested_rule_indent         = $should_prettify ? str_repeat( "\t", $indent_count + 1 ) : '';
	$declarations_indent        = $should_prettify ? $indent_count + 1 : 0;
	$nested_declarations_indent = $should_prettify ? $indent_count + 2 : 0;
	$suffix                     = $should_prettify ? "\n" : '';
	$spacer                     = $should_prettify ? ' ' : '';
	// Trims any multiple selectors strings.
	$selector         = $should_prettify ? implode( ',', array_map( 'trim', explode( ',', $this->get_selector() ) ) ) : $this->get_selector();
	$selector         = $should_prettify ? str_replace( array( ',' ), ",\n", $selector ) : $selector;
	$rules_group      = $this->get_rules_group();
	$has_rules_group  = ! empty( $rules_group );
	$css_declarations = $this->declarations->get_declarations_string( $should_prettify, $has_rules_group ? $nested_declarations_indent : $declarations_indent );

	if ( empty( $css_declarations ) ) {
		return '';
	}

	if ( $has_rules_group ) {
		$selector = "{$rule_indent}{$rules_group}{$spacer}{{$suffix}{$nested_rule_indent}{$selector}{$spacer}{{$suffix}{$css_declarations}{$suffix}{$nested_rule_indent}}{$suffix}{$rule_indent}}";
		return $selector;
	}

	return "{$rule_indent}{$selector}{$spacer}{{$suffix}{$css_declarations}{$suffix}{$rule_indent}}";
}