如何加入协议相对的外部(//ajax.googleapis.com/…)脚本?


14

根据食品法典,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。

Answers:


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);
}

您知道这是WordPress 3.5的新功能吗?
Michiel van Oosterhout

相对于协议的网址已在7个月前添加:core.trac.wordpress.org/ticket/16560
Otto

好的,所以它不是我使用的WordPress版本。那么,什么会导致行为差异?
Michiel van Oosterhout13年

1
好吧,该代码是在7个月前添加的,但是如果您查看票证,它具有3.5的里程碑,因此是的,它可能是3.5的新行为。
奥托

哦,对了,我正在查看设置为3.1的“版本”字段,但这是创建票证时的WordPress版本。
Michiel van Oosterhout13年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.