WP_Theme_JSON::process_blocks_custom_css()protectedWP 6.2.0

Processes the CSS, to apply nesting.

Метод класса: WP_Theme_JSON{}

Хуков нет.

Возвращает

Строку. The processed CSS.

Использование

// protected - в коде основоного (родительского) или дочернего класса
$result = $this->process_blocks_custom_css( $css, $selector );
$css(строка) (обязательный)
The CSS to process.
$selector(строка) (обязательный)
The selector to nest.

Список изменений

С версии 6.2.0 Введена.

Код WP_Theme_JSON::process_blocks_custom_css() WP 6.5.2

protected function process_blocks_custom_css( $css, $selector ) {
	$processed_css = '';

	// Split CSS nested rules.
	$parts = explode( '&', $css );
	foreach ( $parts as $part ) {
		$is_root_css = ( ! str_contains( $part, '{' ) );
		if ( $is_root_css ) {
			// If the part doesn't contain braces, it applies to the root level.
			$processed_css .= trim( $selector ) . '{' . trim( $part ) . '}';
		} else {
			// If the part contains braces, it's a nested CSS rule.
			$part = explode( '{', str_replace( '}', '', $part ) );
			if ( count( $part ) !== 2 ) {
				continue;
			}
			$nested_selector = $part[0];
			$css_value       = $part[1];
			$part_selector   = str_starts_with( $nested_selector, ' ' )
				? static::scope_selector( $selector, $nested_selector )
				: static::append_to_selector( $selector, $nested_selector );
			$processed_css  .= $part_selector . '{' . trim( $css_value ) . '}';
		}
	}
	return $processed_css;
}