@@ -22,23 +22,26 @@ class WP_Scripts extends WP_Dependencies {
2222 * Full URL with trailing slash.
2323 *
2424 * @since 2.6.0
25- * @var string
25+ * @see wp_default_scripts()
26+ * @var string|null
2627 */
2728 public $ base_url ;
2829
2930 /**
3031 * URL of the content directory.
3132 *
3233 * @since 2.8.0
33- * @var string
34+ * @see wp_default_scripts()
35+ * @var string|null
3436 */
3537 public $ content_url ;
3638
3739 /**
3840 * Default version string for scripts.
3941 *
4042 * @since 2.6.0
41- * @var string
43+ * @see wp_default_scripts()
44+ * @var string|null
4245 */
4346 public $ default_version ;
4447
@@ -118,6 +121,7 @@ class WP_Scripts extends WP_Dependencies {
118121 * List of default directories.
119122 *
120123 * @since 2.8.0
124+ * @see wp_default_scripts()
121125 * @var string[]|null
122126 */
123127 public $ default_dirs ;
@@ -413,9 +417,19 @@ public function do_item( $handle, $group = false ) {
413417 $ src = $ this ->base_url . $ src ;
414418 }
415419
416- if ( ! empty ( $ ver ) ) {
417- $ src = add_query_arg ( 'ver ' , $ ver , $ src );
420+ $ query_args = array ();
421+ if ( empty ( $ obj ->ver ) && null !== $ obj ->ver && is_string ( $ this ->default_version ) ) {
422+ $ query_args ['ver ' ] = $ this ->default_version ;
423+ } elseif ( is_scalar ( $ obj ->ver ) ) {
424+ $ query_args ['ver ' ] = (string ) $ obj ->ver ;
425+ }
426+ if ( isset ( $ this ->args [ $ handle ] ) ) {
427+ parse_str ( $ this ->args [ $ handle ], $ parsed_args );
428+ if ( $ parsed_args ) {
429+ $ query_args = array_merge ( $ query_args , $ parsed_args );
430+ }
418431 }
432+ $ src = add_query_arg ( rawurlencode_deep ( $ query_args ), $ src );
419433
420434 /** This filter is documented in wp-includes/class-wp-scripts.php */
421435 $ src = esc_url_raw ( apply_filters ( 'script_loader_src ' , $ src , $ handle ) );
@@ -1078,7 +1092,7 @@ private function filter_eligible_strategies( $handle, $eligible_strategies = nul
10781092 *
10791093 * @since 6.9.0
10801094 * @see self::filter_eligible_strategies()
1081- * @see WP_Script_Modules::get_highest_fetchpriority_with_dependents ()
1095+ * @see WP_Script_Modules::get_highest_fetchpriority ()
10821096 *
10831097 * @param string $handle Script module ID.
10841098 * @param array<string, true> $checked Optional. An array of already checked script handles, used to avoid recursive loops.
0 commit comments