On this page
_wp_normalize_relative_css_links( string $css, string $stylesheet_url ): string
This function’s access is marked private. This means it is not intended for use by plugin or theme developers, only in other core functions. It is listed here for completeness.
Makes URLs relative to the WordPress installation.
Parameters
$cssstring Required-
The CSS to make URLs relative to the WordPress installation.
$stylesheet_urlstring Required-
The URL to the stylesheet.
Return
string The CSS with URLs made relative to the WordPress installation.
Source
File: wp-includes/script-loader.php. View all references
function _wp_normalize_relative_css_links( $css, $stylesheet_url ) {
$has_src_results = preg_match_all( '#url\s*\(\s*[\'"]?\s*([^\'"\)]+)#', $css, $src_results );
if ( $has_src_results ) {
// Loop through the URLs to find relative ones.
foreach ( $src_results[1] as $src_index => $src_result ) {
// Skip if this is an absolute URL.
if ( 0 === strpos( $src_result, 'http' ) || 0 === strpos( $src_result, '//' ) ) {
continue;
}
// Skip if the URL is an HTML ID.
if ( str_starts_with( $src_result, '#' ) ) {
continue;
}
// Skip if the URL is a data URI.
if ( str_starts_with( $src_result, 'data:' ) ) {
continue;
}
// Build the absolute URL.
$absolute_url = dirname( $stylesheet_url ) . '/' . $src_result;
$absolute_url = str_replace( '/./', '/', $absolute_url );
// Convert to URL related to the site root.
$relative_url = wp_make_link_relative( $absolute_url );
// Replace the URL in the CSS.
$css = str_replace(
$src_results[0][ $src_index ],
str_replace( $src_result, $relative_url, $src_results[0][ $src_index ] ),
$css
);
}
}
return $css;
}
Related
Uses
| Uses | Description |
|---|---|
| wp_make_link_relative() wp-includes/formatting.php | Converts full URL paths to absolute paths. |
Used By
| Used By | Description |
|---|---|
| wp_maybe_inline_styles() wp-includes/script-loader.php | Allows small styles to be inlined. |
Changelog
| Version | Description |
|---|---|
| 5.9.0 | Introduced. |
© 2003–2022 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/functions/_wp_normalize_relative_css_links