WP_Style_Engine_CSS_Rule::get_css( bool $should_prettify = false, int $indent_count ): string

In this article

Gets the CSS.

Parameters

$should_prettifybooloptional
Whether to add spacing, new lines and indents.

Default:false

$indent_countintoptional
The number of tab indents to apply to the rule.
Applies if prettify is true. Default 0.

Return

string

Source

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

Changelog

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

User Contributed Notes

You must log in before being able to contribute a note or feedback.