Cum pot încărca scripturi externe cu protocol relativ (//ajax.googleapis.com/...)?
Conform Codex-ului, wp_enqueue_script suportă linkuri externe cu protocol relativ sau protocol agnostic: "Resursele remote pot fi specificate cu un URL agnostic la protocol, de exemplu '//otherdomain.com/js/theirscript.js'."
Dar nu funcționează cum mă așteptam:
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&ver=3'></script>
Observați că URL-ul cu protocol relativ este adăugat la URL-ul site-ului.
Codul pe care l-ai postat funcționează corect și rezultă în următoarea ieșire HTML:
<script type='text/javascript' src='//maps.googleapis.com/maps/api/js?sensor=false&ver=3'></script>
Testat pe WordPress 3.5 cu acest fragment de cod:
add_action('wp_enqueue_scripts', 'test');
function test() {
wp_enqueue_script('google-maps', '//maps.googleapis.com/maps/api/js?&sensor=false', array(), '3', true);
}
URL-urile relative la protocol au fost adăugate acum 7 luni: http://core.trac.wordpress.org/ticket/16560
Otto
Ok, deci nu este vorba despre versiunea de WordPress pe care o folosesc. Atunci ce ar putea cauza diferența de comportament?
Michiel van Oosterhout
Acel cod a fost adăugat acum 7 luni, dar dacă te uiți la ticket, are un milestone 3.5, deci da, probabil este o comportare nouă în 3.5.
Otto
Ah, corect, mă uitam la câmpul 'Version' care era setat la 3.1, dar aceasta este versiunea WordPress la momentul creării ticketului.
Michiel van Oosterhout
Cred că această problemă apare în 3.3.1. Tocmai am avut aceeași problemă, actualizarea la ultima versiune a rezolvat-o.
John B