_wp_normalize_relative_css_links()WP 5.9.0

Makes URLs relative to the WordPress installation.

Внутренняя функция — эта функция рассчитана на использование самим ядром. Не рекомендуется использовать эту функцию в своем коде.

Хуков нет.

Возвращает

Строку. The CSS with URLs made relative to the WordPress installation.

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

_wp_normalize_relative_css_links( $css, $stylesheet_url );
$css(строка) (обязательный)
The CSS to make URLs relative to the WordPress installation.
$stylesheet_url(строка) (обязательный)
The URL to the stylesheet.

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

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

Код _wp_normalize_relative_css_links() WP 6.5.2

function _wp_normalize_relative_css_links( $css, $stylesheet_url ) {
	return preg_replace_callback(
		'#(url\s*\(\s*[\'"]?\s*)([^\'"\)]+)#',
		static function ( $matches ) use ( $stylesheet_url ) {
			list( , $prefix, $url ) = $matches;

			// Short-circuit if the URL does not require normalization.
			if (
				str_starts_with( $url, 'http:' ) ||
				str_starts_with( $url, 'https:' ) ||
				str_starts_with( $url, '//' ) ||
				str_starts_with( $url, '#' ) ||
				str_starts_with( $url, 'data:' )
			) {
				return $matches[0];
			}

			// Build the absolute URL.
			$absolute_url = dirname( $stylesheet_url ) . '/' . $url;
			$absolute_url = str_replace( '/./', '/', $absolute_url );

			// Convert to URL related to the site root.
			$url = wp_make_link_relative( $absolute_url );

			return $prefix . $url;
		},
		$css
	);
}