【问题标题】:Google Maps API Javascript in WordpressWordpress 中的 Google Maps API Javascript
【发布时间】:2013-04-24 22:56:18
【问题描述】:

希望你们能回答这个问题!我认为它应该相对容易,但我似乎无法掌握它。

如何在 Wordpress 帖子/页面中加载 Google Maps API Javascript?

Wordpress Codex 似乎建议在主题的标题中引用您的 javascript 文件,然后您需要调用帖子中的函数。

我在标题中引用了 Google 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">

然后将所有 API 代码也放入我的 javascript 文件:

<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 地图?我可以将所有代码直接粘贴到帖子中,但谷歌地图出现了很多错误。

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

【问题讨论】:

  • 您想如何使用地图?作为背景还是仅仅作为页面中的一个框?您还想为您的地方或其他地方放置长纬度吗?

标签: javascript wordpress


【解决方案1】:

使用 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。您可以添加依赖项版本号或将其移动到带有其他变量的页脚,请参阅 codex 以获取更多信息。在您的情况下,您可能希望将wp_enqueue_script 包装在一个条件中,以便它只加载到您需要它的帖子或页面上。

【讨论】:

  • 我终于得到了与上面非常相似的代码:function google_maps_api() { wp_register_script( 'googlemap', 'https://maps.googleapis.com/maps/api/js?key=AIzaSyBuU_0_uLMnFM-2oWod_fzC0atPZj7dHlU&amp;sensor=false',true); 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' );
  • 很高兴它成功了。没有必要使用“true”作为第三个变量。在入队之前也不会注册脚本。仅当您希望使条件脚本排队更简单或者您正在注册一个将成为另一个脚本的依赖项的脚本时,才真正需要单独注册脚本。你这样做的方式很好,只是多余的。
【解决方案2】:

我刚刚看了你的http://runforlifeuk.com/rhedeg/wp-content/javascript/trefilmap.js 文件

你不应该在里面有&lt;script&gt;标签!

<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 添加到您的页面。

【讨论】:

  • 感谢您的提示!我已成功注册 Google Map API javascript 库并将其排入队列。我还将我的 javascript 的 .js 文件放在我的主题的标题中。好消息是地图正在加载……坏消息是地图严重损坏。例如,信息框的茎没有打开,关闭的十字没有出现,街景街景小人没有出现在地图上。我所知道的所有这些东西都适用于纯 HTML 页面。当我将 Javascript 直接复制到 wordpress 帖子中时,我再次遇到同样的问题。将我的主题切换到 TwentyEleven 并不能解决问题。任何想法!!!!
猜你喜欢
  • 2013-01-16
  • 2016-10-23
  • 1970-01-01
  • 2020-05-11
  • 1970-01-01
  • 1970-01-01
  • 2020-10-07
  • 2014-08-21
  • 1970-01-01
相关资源
最近更新 更多