Как загрузить внешние скрипты с относительным протоколом (//ajax.googleapis.com/...)?

24 янв. 2013 г., 14:51:33
Просмотры: 21.7K
Голосов: 14

Согласно Codex, wp_enqueue_script поддерживает относительные протоколы или протокол-агностические внешние ссылки: "Удаленные ресурсы могут быть указаны с URL, независимым от протокола, например '//otherdomain.com/js/theirscript.js'."

Но я не вижу этого в работе:

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

Вывод:

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

Обратите внимание, что URL с относительным протоколом добавляется к URL сайта.

0
Все ответы на вопрос 1
7
18

Представленный вами код работает корректно и в результате в HTML-выводе получается следующее:

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

Протестировано на WordPress 3.5 с использованием этого фрагмента кода:

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 янв. 2013 г. 15:43:29
Комментарии

Ты знаешь, это новое в WordPress 3.5?

Michiel van Oosterhout Michiel van Oosterhout
25 янв. 2013 г. 15:12:05

URL-адреса, относительные к протоколу, были добавлены 7 месяцев назад: http://core.trac.wordpress.org/ticket/16560

Otto Otto
25 янв. 2013 г. 18:25:11

Хорошо, значит дело не в версии WordPress, которую я использую. Так что же может вызывать разницу в поведении?

Michiel van Oosterhout Michiel van Oosterhout
28 янв. 2013 г. 11:59:39

Этот код был добавлен 7 месяцев назад, но если посмотреть на тикет, у него стоит milestone 3.5, так что да, скорее всего это новое поведение в версии 3.5.

Otto Otto
29 янв. 2013 г. 00:13:58

Ах да, я смотрел на поле 'Version', где стояло 3.1, но это версия WordPress на момент создания тикета.

Michiel van Oosterhout Michiel van Oosterhout
29 янв. 2013 г. 14:09:32

Думаю, эта проблема встречается в 3.3.1. Только что столкнулся с тем же самым - обновление до последней версии исправило ситуацию.

John B John B
6 февр. 2014 г. 03:26:58

Это точно происходит в версии 3.3.1, потому что поддержка протокольно-относительных URL была добавлена только в версии 3.5. Всегда используйте последнюю версию.

Otto Otto
6 февр. 2014 г. 06:38:53
Показать остальные 2 комментариев