Come posso accodare script esterni con protocollo relativo (//ajax.googleapis.com/...)?

24 gen 2013, 14:51:33
Visualizzazioni: 21.7K
Voti: 14

Secondo il Codex, wp_enqueue_script supporta link esterni con protocollo relativo o protocollo agnostico: "Le risorse remote possono essere specificate con un URL protocollo-agnostico, ad esempio '//otherdomain.com/js/theirscript.js'."

Ma non funziona come previsto:

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>

Si noti che l'URL con protocollo relativo viene aggiunto all'URL del sito.

0
Tutte le risposte alla domanda 1
7
18

Il codice che hai postato funziona correttamente e produce questo risultato nell'output HTML:

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

Testato su WordPress 3.5 con questo frammento di codice:

add_action('wp_enqueue_scripts', 'test');
function test() {
  wp_enqueue_script('google-maps', '//maps.googleapis.com/maps/api/js?&sensor=false', array(), '3', true);
}
24 gen 2013 15:43:29
Commenti

Sai se questa è una novità in WordPress 3.5?

Michiel van Oosterhout Michiel van Oosterhout
25 gen 2013 15:12:05

Gli URL relativi al protocollo sono stati aggiunti 7 mesi fa: http://core.trac.wordpress.org/ticket/16560

Otto Otto
25 gen 2013 18:25:11

Ok, quindi non è la versione di WordPress che sto utilizzando. Allora cosa potrebbe causare la differenza nel comportamento?

Michiel van Oosterhout Michiel van Oosterhout
28 gen 2013 11:59:39

Beh, quel codice è stato aggiunto 7 mesi fa, ma se guardi il ticket, ha una milestone 3.5, quindi sì probabilmente è un nuovo comportamento introdotto in 3.5.

Otto Otto
29 gen 2013 00:13:58

Ah giusto, stavo guardando il campo 'Versione' che era impostato a 3.1, ma quella è la versione di WordPress al momento della creazione del ticket.

Michiel van Oosterhout Michiel van Oosterhout
29 gen 2013 14:09:32

Penso che questo problema si verifichi in 3.3.1. Ho avuto lo stesso problema, l'aggiornamento all'ultima versione lo ha risolto.

John B John B
6 feb 2014 03:26:58

Si verifica sicuramente nella 3.3.1, perché il supporto relativo al protocollo è stato aggiunto solo nella 3.5. Esegui sempre l'ultima versione.

Otto Otto
6 feb 2014 06:38:53
Mostra i restanti 2 commenti