Changeset 55736
- Timestamp:
- 05/09/2023 12:15:44 PM (7 months ago)
- Location:
- branches/6.2
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/6.2
- Property svn:mergeinfo changed
/trunk merged: 55658,55669
- Property svn:mergeinfo changed
-
branches/6.2/src/wp-includes/script-loader.php
r55730 r55736 2942 2942 */ 2943 2943 function _wp_normalize_relative_css_links( $css, $stylesheet_url ) { 2944 $has_src_results = preg_match_all( '#url\s*\(\s*[\'"]?\s*([^\'"\)]+)#', $css, $src_results ); 2945 if ( $has_src_results ) { 2946 // Loop through the URLs to find relative ones. 2947 foreach ( $src_results[1] as $src_index => $src_result ) { 2948 // Skip if this is an absolute URL. 2949 if ( 0 === strpos( $src_result, 'http' ) || 0 === strpos( $src_result, '//' ) ) { 2950 continue; 2944 return preg_replace_callback( 2945 '#(url\s*\(\s*[\'"]?\s*)([^\'"\)]+)#', 2946 static function ( $matches ) use ( $stylesheet_url ) { 2947 list( , $prefix, $url ) = $matches; 2948 2949 // Short-circuit if the URL does not require normalization. 2950 if ( 2951 str_starts_with( $url, 'http:' ) || 2952 str_starts_with( $url, 'https:' ) || 2953 str_starts_with( $url, '//' ) || 2954 str_starts_with( $url, '#' ) || 2955 str_starts_with( $url, 'data:' ) 2956 ) { 2957 return $matches[0]; 2951 2958 } 2952 2959 2953 // Skip if the URL is an HTML ID.2954 if ( str_starts_with( $src_result, '#' ) ) {2955 continue;2956 }2957 2958 // Skip if the URL is a data URI.2959 if ( str_starts_with( $src_result, 'data:' ) ) {2960 continue;2961 }2962 2963 2960 // Build the absolute URL. 2964 $absolute_url = dirname( $stylesheet_url ) . '/' . $ src_result;2961 $absolute_url = dirname( $stylesheet_url ) . '/' . $url; 2965 2962 $absolute_url = str_replace( '/./', '/', $absolute_url ); 2963 2966 2964 // Convert to URL related to the site root. 2967 $relative_url = wp_make_link_relative( $absolute_url ); 2968 2969 // Replace the URL in the CSS. 2970 $css = str_replace( 2971 $src_results[0][ $src_index ], 2972 str_replace( $src_result, $relative_url, $src_results[0][ $src_index ] ), 2973 $css 2974 ); 2975 } 2976 } 2977 2978 return $css; 2965 $url = wp_make_link_relative( $absolute_url ); 2966 2967 return $prefix . $url; 2968 }, 2969 $css 2970 ); 2979 2971 } 2980 2972 -
branches/6.2/tests/phpunit/tests/dependencies/styles.php
r55368 r55736 197 197 * @ticket 54243 198 198 * @ticket 54922 199 * @ticket 58069 199 200 * 200 201 * @covers ::_wp_normalize_relative_css_links … … 240 241 'css' => 'img {mask-image: url(\'data:image/svg+xml;utf8,<svg></svg>\');}', 241 242 'expected' => 'img {mask-image: url(\'data:image/svg+xml;utf8,<svg></svg>\');}', 243 ), 244 'URLs with path beginning with http' => array( 245 'css' => 'p {background:url( "http-is-awesome.png" );}', 246 'expected' => 'p {background:url( "/wp-content/themes/test/http-is-awesome.png" );}', 247 ), 248 'URLs with path beginning with https' => array( 249 'css' => 'p {background:url( "https-is-more-awesome.png" );}', 250 'expected' => 'p {background:url( "/wp-content/themes/test/https-is-more-awesome.png" );}', 242 251 ), 243 252 );
Note: See TracChangeset
for help on using the changeset viewer.