[wp-trac] [WordPress Trac] #64372: Additional URL args supplied via enqueued script/style handle cause malformed ver query param when null

WordPress Trac noreply at wordpress.org
Sun Dec 7 05:06:15 UTC 2025


#64372: Additional URL args supplied via enqueued script/style handle cause
malformed ver query param when null
---------------------------+--------------------
 Reporter:  westonruter    |      Owner:  (none)
     Type:  defect (bug)   |     Status:  new
 Priority:  low            |  Milestone:  7.0
Component:  Script Loader  |    Version:  2.6
 Severity:  normal         |   Keywords:
  Focuses:                 |
---------------------------+--------------------
 When working on fixing PHPStan issues (#64238) for `WP_Scripts` (r61358),
 I stumbled across a capability I was previously unaware of: you can pass
 additional query parameters to an enqueued script/style URL by adding them
 to the handle. For example:

 {{{#!php
 <?php
 wp_enqueue_script( 'foo?bar=baz&baz=quux', 'https://example.com/test.js',
 array(), '1.0' );
 }}}


 This results in the following script being printed:

 {{{
 <script type="text/javascript"
 src="https://example.com/test.js?ver=1.0&bar=baz&baz=quux" id
 ="foo-js"></script
 }}}

 This capability is not included in any unit test, and it may be a vestige
 of something no longer used. Naturally, a better way to do this now would
 seem to be to leverage the `script_loader_src` filter, or rather, to add
 the query parameters to the URL being registered in the first place. I can
 [https://wpdirectory.net/search/01KBVJW6HFWQ4HM3X098AV1Z4S find] one
 plugin ([https://wordpress.org/plugins/mapnavigator/ Map Navigator]) which
 seems to be [using] this intentionally.

 In any case, I found that this capability is broken when using `null` as a
 version:

 {{{#!php
 <?php
 wp_enqueue_script( 'foo?bar=baz&baz=quux', 'https://example.com/test.js',
 array(), null );
 }}}

 This results in:

 {{{
 <script type="text/javascript"
 src="https://example.com/test.js?ver=bar=baz&baz=quux" id="foo-
 js"></script>
 }}}

 Note the query string: `ver=bar=baz&baz=quux`.

 The "ver=" shouldn't have been included here.

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/64372>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list