[wp-hackers] wp_enqueue_script() and URLs with 2+ parameters
Mike Schinkel
mikeschinkel at newclarity.net
Fri Feb 27 18:36:30 GMT 2009
Hi all:
I'm running into a quandry and am wondering if you have suggestions.
I have a PHP file that accepts URL parameters to generate different Javascript depending on which page is calling it and I need to make sure that for each of the different generated JS there is a unique URL for reasons of HTTP caching.
To start my PHP file sets the HTTP content type using:
header('Content-Type:text/javascript');
In(directly with)in my functions.php file in my theme I'm using wp_enqueue_script() something like this:
wp_enqueue_script('my-custom-js',"$template_url/ js/ my-custom-js .js.php?p1=A&p2=B&p3=C",array('jquery'),'1.0');
The problem is that WordPress sends the first URL that follows to the browser instead of the second URL which is what I need:
http://example.com/wp-content/themes/my-theme/js/my-custom-js.js.php?p1=A&p2=B&p3=C
http://example.com/wp-content/themes/my-theme/js/my-custom-js.js.php?p1=A&p2=B&p3=C
My question is: "Is this really by design, or an oversight in the design?"
I've tried to figure out how to solve this via a hook but the code is very complex and nested and I can't figure out how to hook it easily enough given my deadline today.
I'm to the point of just moving that javascript reference into header.php and ignoring wp_enqueue_script() for this custom JS file (and that might be the best practice anyway), but it seems there is still a problem if and when a plugin needed to use a URL with multiple parameters and specify it using wp_enqueue_script().
So in summary my questions are:
1.) Is this encoding of the ampersand in the URL from "&" to "#038;" by design, or is it a bug we can fix in core?
2.) No matter the answer to #1, is there a hook that would allow a plugin to bypass this encoding?
Thanks in advance.
-Mike Schinkel
http://mikeschinkel.com/
More information about the wp-hackers
mailing list