2013-04-24 74 views
2

希望你们能回答这个问题!我认为它应该相对容易,但我似乎无法控制它。Google Maps API Javascript in Wordpress

如何在Wordpress文章/页面中加载Google Maps API Javascript?

WordPress的食典似乎表明,在您的主题头引用您的JavaScript文件,然后需要调用职位内的功能。

我如下提到的谷歌Javascript文件的标题:

<script type="text/javascript" 
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBuU_0_uLMnFM-2oWod_fzC0atPZj7dHlU&sensor=false"></script> 
<script type="text/javascript" src="https://www.google.com/jsapi"></script> 
<script type="text/javascript"> 

,然后到我的javascript文件头中具有的所有API代码太:

<script type="text/javascript" src="http://runforlifeuk.com/rhedeg/wp-content/javascript/trefilmap.js"></script> 

我然后在帖子中使用了以下代码:

<script type="text/javascript" src="http://runforlifeuk.com/rhedeg/wp-content/javascript/trefilmap.js"> 
</script> 
<script type="text/javascript"> 
</script> 
<div id="map-canvas"> 
</div> 

但是,这只是创建一个空框。我已经尝试在帖子中调用预定义的Google JS函数,但这似乎并没有奏效。

有没有人在Wordpress上实现Google地图上的Google地图?我可以直接将所有代码粘贴到帖子中,但Google Map中出现了很多bug。

任何想法将不胜感激! 非常感谢。

+0

如何使用地图?作为背景或只是在你的网页框?你还想为你的地方或其他地方放置多久? – Mhche 2013-05-03 10:03:47

回答

0

我只是看看你http://runforlifeuk.com/rhedeg/wp-content/javascript/trefilmap.js文件

你不应该在<script>标签!

<script type="text/javascript" 
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBuU_0_uLMnFM-2oWod_fzC0atPZj7dHlU&sensor=false"></script> 
<script type="text/javascript" src="https://www.google.com/jsapi"></script> 
<script type="text/javascript"> 

我建议你看看错误的JavaScript控制台,并学会使用wp_enqueue_script()添加JavaScript到您的网页。

+0

感谢您的提示!我已经设法注册并排队Google Map API JavaScript库。我还将我的javascript的.js文件放在我主题的标题中。好消息是地图加载......坏消息是地图非常糟糕。例如,信息框的词根不打开,十字形不显示,街景挂图不会显示在地图上。我知道的所有这些东西都是在一个普通的HTML页面上工作的当我直接将Javascript复制到WordPress后,我再次遇到同样的问题。将我的主题切换到TwentyEleven并不能解决问题。有任何想法吗!!!! – wowzimmer 2013-04-25 19:31:41

12

使用WordPress,您绝对不应该将js编码到页眉或页脚中。取而代之的是在函数中使用wp_enqueue_script,这个函数被挂在functions.php中的wp_enqueue_scripts动作中。例如:

function add_scripts() { 
    wp_enqueue_script('google-maps', 'https://maps.googleapis.com/maps/api/js?key=AIzaSyBuU_0_uLMnFM-2oWod_fzC0atPZj7dHlU&sensor=false'); 
    wp_enqueue_script('google-jsapi','https://www.google.com/jsapi');  
} 
add_action('wp_enqueue_scripts', 'add_scripts') 

你会想要用一个独特的slug作为函数名的前缀。您可以添加依赖版本号或使用其他变量将其移至页脚,有关更多信息,请参阅代码。在你的情况下,你可能想在条件中包装wp_enqueue_script,所以它只会加载在你需要的帖子或页面上。

+1

我终于得到了与上面非常类似的代码:'function google_maps_api(){ wp_register_script('googlemap','https://maps.googleapis.com/maps/api/js?key=AIzaSyBuU_0_uLMnFM-2oWod_fzC0atPZj7dHlU&sensor=假”,真); wp_register_script('elevation_service','https://www.google.com/jsapi',true); wp_enqueue_script('googlemap'); wp_enqueue_script('elevation_service'); } add_action('wp_enqueue_scripts','google_maps_api');' – wowzimmer 2013-05-11 14:34:54

+1

很高兴它的工作。没有必要使用'true'作为第三个变量。在排队之前也不会注册脚本。单独注册脚本只有在想要使条件脚本队列变得更简单或注册的脚本是另一脚本的依赖关系时才真正需要。它的方式很好,它只是多余的。 – JPollock 2013-05-12 01:19:38