_wp_normalize_relative_css_links()
Makes URLs relative to the WordPress installation.
This is an internal function for using it by WP core itself. It's not recommended to use this function in your code.
No Hooks.
Return
String
. The CSS with URLs made relative to the WordPress installation.
Usage
_wp_normalize_relative_css_links( $css, $stylesheet_url );
- $css(string) (required)
- The CSS to make URLs relative to the WordPress installation.
- $stylesheet_url(string) (required)
- The URL to the stylesheet.
Changelog
Since 5.9.0 | Introduced. |
Code of _wp_normalize_relative_css_links() wp normalize relative css links WP 6.0
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; }