WordPress.org

Make WordPress Core

Ticket #45469: 45469.2.diff

File 45469.2.diff, 1.2 KB (added by swissspidy, 12 months ago)
  • src/wp-includes/script-loader.php

    diff --git src/wp-includes/script-loader.php src/wp-includes/script-loader.php
    index b21f9a6f49..9316d70811 100644
    function wp_get_script_polyfill( &$scripts, $tests ) { 
    178178                        continue;
    179179                }
    180180
     181                $src = $scripts->registered[ $handle ]->src;
     182                $ver = $scripts->registered[ $handle ]->ver;
     183
     184                if ( ! preg_match( '|^(https?:)?//|', $src ) && ! ( $scripts->content_url && 0 === strpos( $src, $scripts->content_url ) ) ) {
     185                        $src = $scripts->base_url . $src;
     186                }
     187
     188                if ( ! empty( $ver ) ) {
     189                        $src = add_query_arg( 'ver', $ver, $src );
     190                }
     191
     192                /** This filter is documented in wp-includes/class.wp-scripts.php */
     193                $src = esc_url( apply_filters( 'script_loader_src', $src, $handle ) );
     194
     195                if ( ! $src ) {
     196                        continue;
     197                }
     198
    181199                $polyfill .= (
    182200                        // Test presence of feature...
    183201                        '( ' . $test . ' ) || ' .
    function wp_get_script_polyfill( &$scripts, $tests ) { 
    185203                        // at the `document.write`. Its caveat of synchronous mid-stream
    186204                        // blocking write is exactly the behavior we need though.
    187205                        'document.write( \'<script src="' .
    188                         esc_url( $scripts->registered[ $handle ]->src ) .
     206                        $src .
    189207                        '"></scr\' + \'ipt>\' );'
    190208                );
    191209        }