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
- __construct()Constructor.
- set_selector()Sets the selector.
- add_declarations()Sets the declarations.
- set_rules_group()Sets the rules group.
- get_rules_group()Gets the rules group.
- get_declarations()Gets the declarations object.
- get_selector()Gets the full selector.
- get_css()Gets the CSS.
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.
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.