Comment mettre en file d'attente les scripts externes relatifs au protocole (//ajax.googleapis.com/…)?

14

Selon le Codex , wp_enqueue_script prend en charge les liens externes relatifs au protocole ou indépendants du protocole: "Les ressources distantes peuvent être spécifiées avec une URL indépendante du protocole, à savoir '//otherdomain.com/js/theirscript.js'."

Mais je ne le vois pas:

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

Production:

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

Notez que l'URL relative au protocole est ajoutée à l'URL du site.

Michiel van Oosterhout
la source

Réponses:

17

Le code que vous avez publié fonctionne très bien et se traduit par ceci dans la sortie HTML:

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

Testé sur WordPress 3.5 avec cet extrait de code:

add_action('wp_enqueue_scripts', 'test');
function test() {
  wp_enqueue_script('google-maps', '//maps.googleapis.com/maps/api/js?&sensor=false', array(), '3', true);
}
Otto
la source
Savez-vous que c'est nouveau dans WordPress 3.5?
Michiel van Oosterhout
Des URL relatives au protocole ont été ajoutées il y a 7 mois: core.trac.wordpress.org/ticket/16560
Otto
Ok, donc ce n'est pas la version de WordPress que j'utilise. Alors, qu'est-ce qui pourrait causer la différence de comportement?
Michiel van Oosterhout
1
Eh bien, ce code a été ajouté il y a 7 mois, mais si vous regardez le ticket, il a un jalon de 3,5, alors oui, c'est probablement un nouveau comportement à 3,5.
Otto
Oh oui, je regardais le champ 'Version' qui était réglé sur 3.1, mais c'est la version de WordPress au moment de la création du ticket.
Michiel van Oosterhout