Script loader: prevent sorting of the `load` array in the query string when passing the script handles to load-scripts.php and load-styles.php.

Fixes #45346 #26886.

git-svn-id: https://develop.svn.wordpress.org/trunk@45456 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Andrew Ozz 2019-05-28 02:42:24 +00:00
parent 9ca38510d1
commit 2d02bb13d1
3 changed files with 15 additions and 4 deletions

View File

@ -16,6 +16,7 @@ define( 'WPINC', 'wp-includes' );
$load = $_GET['load'];
if ( is_array( $load ) ) {
ksort( $load );
$load = implode( '', $load );
}

View File

@ -20,8 +20,10 @@ require( ABSPATH . WPINC . '/version.php' );
$load = $_GET['load'];
if ( is_array( $load ) ) {
ksort( $load );
$load = implode( '', $load );
}
$load = preg_replace( '/[^a-z0-9,_-]+/i', '', $load );
$load = array_unique( explode( ',', $load ) );

View File

@ -2461,9 +2461,13 @@ function _print_scripts() {
}
$concat = str_split( $concat, 128 );
$concat = 'load%5B%5D=' . implode( '&load%5B%5D=', $concat );
$concatenated = '';
$src = $wp_scripts->base_url . "/wp-admin/load-scripts.php?c={$zip}&" . $concat . '&ver=' . $wp_scripts->default_version;
foreach ( $concat as $key => $chunk ) {
$concatenated .= "&load%5Bchunk_{$key}%5D={$chunk}";
}
$src = $wp_scripts->base_url . "/wp-admin/load-scripts.php?c={$zip}" . $concatenated . '&ver=' . $wp_scripts->default_version;
echo "<script type='text/javascript' src='" . esc_attr( $src ) . "'></script>\n";
}
@ -2631,9 +2635,13 @@ function _print_styles() {
$ver = $wp_styles->default_version;
$concat = str_split( $concat, 128 );
$concat = 'load%5B%5D=' . implode( '&load%5B%5D=', $concat );
$concatenated = '';
$href = $wp_styles->base_url . "/wp-admin/load-styles.php?c={$zip}&dir={$dir}&" . $concat . '&ver=' . $ver;
foreach ( $concat as $key => $chunk ) {
$concatenated .= "&load%5Bchunk_{$key}%5D={$chunk}";
}
$href = $wp_styles->base_url . "/wp-admin/load-styles.php?c={$zip}&dir={$dir}" . $concatenated . '&ver=' . $ver;
echo "<link rel='stylesheet' href='" . esc_attr( $href ) . "' type='text/css' media='all' />\n";
if ( ! empty( $wp_styles->print_code ) ) {