WP_Style_Engine_Processor
- Since
- 6.1.0
- Source
wp-includes/style-engine/class-wp-style-engine-processor.php:15
Core class used to compile styles from stores or collection of CSS rules.
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 · 2
$storesWP_Style_Engine_CSS_Rules_Store[]protected- A collection of Style Engine Store objects.
$css_rulesWP_Style_Engine_CSS_Rule[]protected- The set of CSS rules that this processor will work on.
Methods · 4
- add_store()Adds a store to the processor.
- add_rules()Adds rules to be processed.
- get_css()Gets the CSS rules as a string.
- combine_rules_selectors()Combines selectors from the rules store when they have the same styles.
Source code
#[AllowDynamicProperties]class WP_Style_Engine_Processor { /** * A collection of Style Engine Store objects. * * @since 6.1.0 * @var WP_Style_Engine_CSS_Rules_Store[] */ protected $stores = array(); /** * The set of CSS rules that this processor will work on. * * @since 6.1.0 * @var WP_Style_Engine_CSS_Rule[] */ protected $css_rules = array(); /** * Adds a store to the processor. * * @since 6.1.0 * * @param WP_Style_Engine_CSS_Rules_Store $store The store to add. * @return WP_Style_Engine_Processor Returns the object to allow chaining methods. */ public function add_store( $store ) { if ( ! $store instanceof WP_Style_Engine_CSS_Rules_Store ) { _doing_it_wrong( __METHOD__, __( '$store must be an instance of WP_Style_Engine_CSS_Rules_Store' ), '6.1.0' ); return $this; } $this->stores[ $store->get_name() ] = $store; return $this; } /** * Adds rules to be processed. * * @since 6.1.0 * @since 6.6.0 Added support for rules_group. * * @param WP_Style_Engine_CSS_Rule|WP_Style_Engine_CSS_Rule[] $css_rules A single, or an array of, * WP_Style_Engine_CSS_Rule objects * from a store or otherwise. * @return WP_Style_Engine_Processor Returns the object to allow chaining methods. */ public function add_rules( $css_rules ) { if ( ! is_array( $css_rules ) ) { $css_rules = array( $css_rules ); } foreach ( $css_rules as $rule ) { $selector = $rule->get_selector(); $rules_group = $rule->get_rules_group(); /** * If there is a rules_group and it already exists in the css_rules array, * add the rule to it. * Otherwise, create a new entry for the rules_group. */ if ( ! empty( $rules_group ) ) { if ( isset( $this->css_rules[ "$rules_group $selector" ] ) ) { $this->css_rules[ "$rules_group $selector" ]->add_declarations( $rule->get_declarations() ); continue; } $this->css_rules[ "$rules_group $selector" ] = $rule; continue; } // If the selector already exists, add the declarations to it. if ( isset( $this->css_rules[ $selector ] ) ) { $this->css_rules[ $selector ]->add_declarations( $rule->get_declarations() ); continue;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-processor.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.