diff --git a/wp-includes/class-wp-scripts.php b/wp-includes/class-wp-scripts.php index 1326627404..03829a20bd 100644 --- a/wp-includes/class-wp-scripts.php +++ b/wp-includes/class-wp-scripts.php @@ -22,7 +22,8 @@ class WP_Scripts extends WP_Dependencies { * Full URL with trailing slash. * * @since 2.6.0 - * @var string + * @see wp_default_scripts() + * @var string|null */ public $base_url; @@ -30,7 +31,8 @@ class WP_Scripts extends WP_Dependencies { * URL of the content directory. * * @since 2.8.0 - * @var string + * @see wp_default_scripts() + * @var string|null */ public $content_url; @@ -38,7 +40,8 @@ class WP_Scripts extends WP_Dependencies { * Default version string for scripts. * * @since 2.6.0 - * @var string + * @see wp_default_scripts() + * @var string|null */ public $default_version; @@ -118,6 +121,7 @@ class WP_Scripts extends WP_Dependencies { * List of default directories. * * @since 2.8.0 + * @see wp_default_scripts() * @var string[]|null */ public $default_dirs; @@ -413,9 +417,19 @@ class WP_Scripts extends WP_Dependencies { $src = $this->base_url . $src; } - if ( ! empty( $ver ) ) { - $src = add_query_arg( 'ver', $ver, $src ); + $query_args = array(); + if ( empty( $obj->ver ) && null !== $obj->ver && is_string( $this->default_version ) ) { + $query_args['ver'] = $this->default_version; + } elseif ( is_scalar( $obj->ver ) ) { + $query_args['ver'] = (string) $obj->ver; } + if ( isset( $this->args[ $handle ] ) ) { + parse_str( $this->args[ $handle ], $parsed_args ); + if ( $parsed_args ) { + $query_args = array_merge( $query_args, $parsed_args ); + } + } + $src = add_query_arg( rawurlencode_deep( $query_args ), $src ); /** This filter is documented in wp-includes/class-wp-scripts.php */ $src = esc_url_raw( apply_filters( 'script_loader_src', $src, $handle ) ); diff --git a/wp-includes/class-wp-styles.php b/wp-includes/class-wp-styles.php index 2e037f1288..9b210b2df9 100644 --- a/wp-includes/class-wp-styles.php +++ b/wp-includes/class-wp-styles.php @@ -22,7 +22,8 @@ class WP_Styles extends WP_Dependencies { * Full URL with trailing slash. * * @since 2.6.0 - * @var string + * @see wp_default_styles() + * @var string|null */ public $base_url; @@ -30,7 +31,8 @@ class WP_Styles extends WP_Dependencies { * URL of the content directory. * * @since 2.8.0 - * @var string + * @see wp_default_styles() + * @var string|null */ public $content_url; @@ -38,7 +40,8 @@ class WP_Styles extends WP_Dependencies { * Default version string for stylesheets. * * @since 2.6.0 - * @var string + * @see wp_default_styles() + * @var string|null */ public $default_version; @@ -46,6 +49,7 @@ class WP_Styles extends WP_Dependencies { * The current text direction. * * @since 2.6.0 + * @see wp_default_styles() * @var string */ public $text_direction = 'ltr'; @@ -96,6 +100,7 @@ class WP_Styles extends WP_Dependencies { * List of default directories. * * @since 2.8.0 + * @see wp_default_styles() * @var string[]|null */ public $default_dirs; @@ -218,7 +223,7 @@ class WP_Styles extends WP_Dependencies { return true; } - $href = $this->_css_href( $src, $ver, $handle ); + $href = $this->_css_href( $src, $obj->ver, $handle ); if ( ! $href ) { return true; } @@ -425,9 +430,9 @@ class WP_Styles extends WP_Dependencies { * * @since 2.6.0 * - * @param string $src The source of the enqueued style. - * @param string $ver The version of the enqueued style. - * @param string $handle The style's registered handle. + * @param string $src The source of the enqueued style. + * @param string|false|null $ver The version of the enqueued style. + * @param string $handle The style's registered handle. * @return string Style's fully-qualified URL. */ public function _css_href( $src, $ver, $handle ) { @@ -435,9 +440,19 @@ class WP_Styles extends WP_Dependencies { $src = $this->base_url . $src; } - if ( ! empty( $ver ) ) { - $src = add_query_arg( 'ver', $ver, $src ); + $query_args = array(); + if ( empty( $ver ) && null !== $ver && is_string( $this->default_version ) ) { + $query_args['ver'] = $this->default_version; + } elseif ( is_scalar( $ver ) ) { + $query_args['ver'] = (string) $ver; } + if ( isset( $this->args[ $handle ] ) ) { + parse_str( $this->args[ $handle ], $parsed_args ); + if ( $parsed_args ) { + $query_args = array_merge( $query_args, $parsed_args ); + } + } + $src = add_query_arg( rawurlencode_deep( $query_args ), $src ); /** * Filters an enqueued style's fully-qualified URL. diff --git a/wp-includes/version.php b/wp-includes/version.php index 7b06a5b259..33ef7eaabc 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -16,7 +16,7 @@ * * @global string $wp_version */ -$wp_version = '7.0-alpha-61396'; +$wp_version = '7.0-alpha-61397'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.