wppaste
WordPress

WP_Style_Engine_CSS_Rule

Since
6.1.0
Source
wp-includes/style-engine/class-wp-style-engine-css-rule.php:17
Core class used for style engine CSS rules.

Description

Holds, sanitizes, processes, and prints CSS declarations for the style engine.

Compatibility

WordPress
since 6.1.0
  • 6.7.7
  • 6.8.8
  • 6.9.7
  • 7.0.4
  • 7.1.0

Present in every tracked release (6.7.7 to 7.1.0).

Properties · 3

$selectorstringprotected
The selector.
$declarationsWP_Style_Engine_CSS_Declarationsprotected
The selector declarations.
$rules_groupstringprotected
A parent CSS selector in the case of nested CSS, or a CSS nested @rule, such as @media (min-width: 80rem) or @layer module.

Methods · 8

Source code

#[AllowDynamicProperties]class WP_Style_Engine_CSS_Rule { 	/**	 * The selector.	 *	 * @since 6.1.0	 * @var string	 */	protected $selector; 	/**	 * The selector declarations.	 *	 * Contains a WP_Style_Engine_CSS_Declarations object.	 *	 * @since 6.1.0	 * @var WP_Style_Engine_CSS_Declarations	 */	protected $declarations; 	/**	 * A parent CSS selector in the case of nested CSS, or a CSS nested @rule,	 * such as `@media (min-width: 80rem)` or `@layer module`.	 *	 * @since 6.6.0	 * @var string	 */	protected $rules_group; 	/**	 * Constructor.	 *	 * @since 6.1.0	 * @since 6.6.0 Added the `$rules_group` parameter.	 *	 * @param string                                    $selector     Optional. The CSS selector. Default empty string.	 * @param string[]|WP_Style_Engine_CSS_Declarations $declarations Optional. An associative array of CSS definitions,	 *                                                                e.g. `array( "$property" => "$value", "$property" => "$value" )`,	 *                                                                or a WP_Style_Engine_CSS_Declarations object.	 *                                                                Default empty array.	 * @param string                                    $rules_group  A parent CSS selector in the case of nested CSS, or a CSS nested @rule,	 *                                                                such as `@media (min-width: 80rem)` or `@layer module`.	 */	public function __construct( $selector = '', $declarations = array(), $rules_group = '' ) {		$this->set_selector( $selector );		$this->add_declarations( $declarations );		$this->set_rules_group( $rules_group );	} 	/**	 * Sets the selector.	 *	 * @since 6.1.0	 *	 * @param string $selector The CSS selector.	 * @return WP_Style_Engine_CSS_Rule Returns the object to allow chaining of methods.	 */	public function set_selector( $selector ) {		$this->selector = $selector;		return $this;	} 	/**	 * Sets the declarations.	 *	 * @since 6.1.0	 * @since 7.1.0 Preserves declaration options when declarations are provided as a `WP_Style_Engine_CSS_Declarations` object.	 *	 * @param string[]|WP_Style_Engine_CSS_Declarations $declarations An array of declarations (property => value pairs),	 *                                                                or a WP_Style_Engine_CSS_Declarations object.	 * @return WP_Style_Engine_CSS_Rule Returns the object to allow chaining of methods.	 */	public function add_declarations( $declarations ) {		$is_declarations_object = ! is_array( $declarations );		$declarations_array     = $is_declarations_object ? $declarations->get_declarations() : $declarations;		$declaration_options    = $is_declarations_object ? $declarations->get_declaration_options() : array(); 		if ( null === $this->declarations ) {			if ( $is_declarations_object ) {

Changelog

Introduced in 6.1.0. Unchanged from 6.7.7 through 7.1.0.

  1. 6.7.7
  2. 6.8.8
  3. 6.9.7
  4. 7.0.4
  5. 7.1.0

Signature, return type and hooks compared across 5 parsed releases.

About this page

Parsed data
Generated from the wordpress-develop 7.1.0 tag, from src/wp-includes/style-engine/class-wp-style-engine-css-rule.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.
Corrections
Something wrong on this page? Report it and it gets fixed in the next regeneration.