WP_Style_Engine_Processor::combine_rules_selectors
Combines selectors from the rules store when they have the same styles.
Метод класса: WP_Style_Engine_Processor{}
Хуков нет.
Возвращает
null. Ничего (null).
Использование
// private - только в коде основоного (родительского) класса $result = $this->combine_rules_selectors();
Список изменений
| С версии 6.1.0 | Введена. |
Код WP_Style_Engine_Processor::combine_rules_selectors() WP Style Engine Processor::combine rules selectors WP 6.9.4
private function combine_rules_selectors() {
// Build an array of selectors along with the JSON-ified styles to make comparisons easier.
$selectors_json = array();
foreach ( $this->css_rules as $rule ) {
$declarations = $rule->get_declarations()->get_declarations();
ksort( $declarations );
$selectors_json[ $rule->get_selector() ] = wp_json_encode( $declarations );
}
// Combine selectors that have the same styles.
foreach ( $selectors_json as $selector => $json ) {
// Get selectors that use the same styles.
$duplicates = array_keys( $selectors_json, $json, true );
// Skip if there are no duplicates.
if ( 1 >= count( $duplicates ) ) {
continue;
}
$declarations = $this->css_rules[ $selector ]->get_declarations();
foreach ( $duplicates as $key ) {
// Unset the duplicates from the $selectors_json array to avoid looping through them as well.
unset( $selectors_json[ $key ] );
// Remove the rules from the rules collection.
unset( $this->css_rules[ $key ] );
}
// Create a new rule with the combined selectors.
$duplicate_selectors = implode( ',', $duplicates );
$this->css_rules[ $duplicate_selectors ] = new WP_Style_Engine_CSS_Rule( $duplicate_selectors, $declarations );
}
}