WP_Theme_JSON::compute_preset_classes
Given a settings array, returns the generated rulesets for the preset classes.
Метод класса: WP_Theme_JSON{}
Хуков нет.
Возвращает
Строку. The result of processing the presets.
Использование
$result = WP_Theme_JSON::compute_preset_classes( $settings, $selector, $origins );
- $settings(массив) (обязательный)
- Settings to process.
- $selector(строка) (обязательный)
- Selector wrapping the classes.
- $origins(string[]) (обязательный)
- List of origins to process.
Список изменений
| С версии 5.8.0 | Введена. |
| С версии 5.9.0 | Added the $origins parameter. |
| С версии 6.6.0 | Added check for root CSS properties selector. |
Код WP_Theme_JSON::compute_preset_classes() WP Theme JSON::compute preset classes WP 7.0
protected static function compute_preset_classes( $settings, $selector, $origins ) {
if ( static::ROOT_BLOCK_SELECTOR === $selector || static::ROOT_CSS_PROPERTIES_SELECTOR === $selector ) {
/*
* Classes at the global level do not need any CSS prefixed,
* and we don't want to increase its specificity.
*/
$selector = '';
}
$stylesheet = '';
foreach ( static::PRESETS_METADATA as $preset_metadata ) {
if ( empty( $preset_metadata['classes'] ) ) {
continue;
}
$slugs = static::get_settings_slugs( $settings, $preset_metadata, $origins );
foreach ( $preset_metadata['classes'] as $class => $property ) {
foreach ( $slugs as $slug ) {
$css_var = static::replace_slug_in_string( $preset_metadata['css_vars'], $slug );
$class_name = static::replace_slug_in_string( $class, $slug );
// $selector is often empty, so we can save ourselves the `append_to_selector()` call then.
$new_selector = '' === $selector ? $class_name : static::append_to_selector( $selector, $class_name );
$stylesheet .= static::to_ruleset(
$new_selector,
array(
array(
'name' => $property,
'value' => 'var(' . $css_var . ') !important',
),
)
);
}
}
}
return $stylesheet;
}