14

According to the Codex, wp_enqueue_script supports protocol relative, or protocol agnostic external links: "Remote assets can be specified with a protocol-agnostic URL, i.e. '//otherdomain.com/js/theirscript.js'."

But I'm not seeing it:

wp_enqueue_script('google-maps', '//maps.googleapis.com/maps/api/js?&sensor=false', array(), '3', true);

Output:

<script type='text/javascript' src='http://localhost:25898//maps.googleapis.com/maps/api/js?sensor=false&#038;ver=3'></script>

Notice that the protocol relative URL is appended to the site URL.

1 Answer 1

18

The code you posted works fine and results in this in the HTML output:

<script type='text/javascript' src='//maps.googleapis.com/maps/api/js?sensor=false&#038;ver=3'></script>

Tested on WordPress 3.5 with this code snippet:

add_action('wp_enqueue_scripts', 'test');
function test() {
  wp_enqueue_script('google-maps', '//maps.googleapis.com/maps/api/js?&sensor=false', array(), '3', true);
}
7
  • Do you know it this is new in WordPress 3.5? Commented Jan 25, 2013 at 13:12
  • Protocol-relative URLs was added 7 months ago: core.trac.wordpress.org/ticket/16560
    – Otto
    Commented Jan 25, 2013 at 16:25
  • Ok, so it's not the version of WordPress that I'm using. So what could cause the difference in behaviour? Commented Jan 28, 2013 at 9:59
  • 1
    Well, that code was added 7 months ago, but if you look at the ticket, it has a 3.5 milestone, so yes it's probably new behavior to 3.5.
    – Otto
    Commented Jan 28, 2013 at 22:13
  • Oh right, I was looking at the 'Version' field which was set to 3.1, but that's the version of WordPress at the time the ticket was created. Commented Jan 29, 2013 at 12:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.