wordpress 高级自定义字段 google map api key

Posted

技术标签:

【中文标题】wordpress 高级自定义字段 google map api key【英文标题】:wordpress advanced custom fields google map api key 【发布时间】:2016-11-11 23:08:49 【问题描述】:

我在使用高级自定义字段插件加载谷歌地图时遇到问题。我在https://www.advancedcustomfields.com/resources/google-map 的插件页面上的说明中进行了所有操作。 我在 ACF 中添加了 google-map 字段,但在它应该出现的页面上显示了一秒钟,然后消失并显示“糟糕!出了点问题。此页面未正确加载 Google 地图。请参阅 javascript 控制台了解技术细节。” (见截图)。控制台说我需要设置 Google API 密钥。我想我还需要从 ACF 指令中修改 .js 文件中的一些字符串,但我不知道是哪些。可能有人可以提供帮助。 提前谢谢你。screenshot

【问题讨论】:

我在这里找到了临时解决方案support.advancedcustomfields.com/forums/topic/… 【参考方案1】:

ACF 更新了Google Map documentation

您首先必须get a Maps API key 并确保您激活了以下 API:

地图 JavaScript API 地理编码 API 地点 API

然后在你的functions.php注册API密钥

如果不使用 ACF

function my_acf_google_map_api( $api )
    $api['key'] = 'xxx';
    return $api;

add_filter('acf/fields/google_map/api', 'my_acf_google_map_api');

如果使用 ACF 专业版

function my_acf_init() 
    acf_update_setting('google_api_key', 'xxx');


add_action('acf/init', 'my_acf_init');

就我而言,我必须删除并重新创建该字段才能正确保存。

【讨论】:

这对我有用!谢谢 ACF 网站说只有“Maps JavaScript API、Geocoding API 和 Places API”必须被激活。经过测试并且可以工作。 谢谢@HenningFischer,刚刚根据您的评论更新了答案:)【参考方案2】:

解决方案可能是在模板中编辑 functions.php

//TODO: fix api key for advanced custom field
add_action('acf/fields/google_map/api', function($api)
$api['key'] = '<YOUR_API_KEY>';
return $api;
);

or you can check my article for a complete solution

【讨论】:

【参考方案3】:

在您的脚本中添加这一行..用您的密钥替换..

<script src="javascripts/jquery.js"></script>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=YOUR-API-KEY"></script>
<script type="text/javascript" src="javascripts/jquery.googlemap.js"></script>

【讨论】:

【参考方案4】:

我已经为这个问题找到了几个不同的解决方案,但在开始解释该怎么做之前,让我记住要获得一个 google maps api 密钥。 我关注了these instructions,因为我使用的是 Listify 主题,但我很确定无论你拥有什么主题,它们都能为你提供帮助。

这里是我的解决方案:

前端

某处(我猜在你的functions.phpyour-awesome-widget.php)你应该有这样的一行

wp_enqueue_script( 'googlemaps_api' );

wp_enqueue_script( 'googlemaps' );

我找到的解决方案是在脚本注册中添加密钥,然后将其入队,这样

wp_register_script('googlemaps', 'http://maps.googleapis.com/maps/api/js?key='.$YOUR_API_KEY, false, '3');

wp_enqueue_script('googlemaps');

后端

这个很快而且很脏,因为我已经读过 ACF 支持已经在官方解决方案上工作了,所以,对我来说,如果 它会被插件更新删除,这不是问题.

打开这两个文件:

高级自定义字段/js/input.min.js

advanced-custom-fields/js/input.js(理论上如果你使用的是.min版本,这个没用)

这段代码在每个文件中重复两次:

google.load('maps', '3', other_params: $.param(self.api), callback: function() ...

以这种方式更改这两个事件,将键添加为查询字符串

other_params: $.param(i.api) + 'key=YOUR_API_KEY', callback ...

瞧!它应该可以工作。

话题官方主页here

希望对你有所帮助!

【讨论】:

除此之外,请确保您还为您正在使用的 API 密钥启用了所有所需的 Google API。我遇到了这个问题,我发现这是因为 Maps API 本身并不具备 ACF Google 地图元素按预期工作所需的所有功能。我还必须添加 Place API。【参考方案5】:

使用当前版本(4.4)的 ACF,您可以在您正在使用的模板中找到 functions.php 并将其添加到代码末尾:

function my_acf_google_map_api( $api )
    $api['key'] = 'YOUR_API_KEY';
    return $api;

add_filter('acf/fields/google_map/api', 'my_acf_google_map_api');

将“YOUR_API_KEY”更改为您从 Google 生成的 API KEY。

【讨论】:

这个答案的质量不是很低,但这与现有答案非常相似。这个答案没有什么新意。

以上是关于wordpress 高级自定义字段 google map api key的主要内容,如果未能解决你的问题,请参考以下文章

php 使用WordPress高级自定义字段实现Google地图的无JavaScript实现

如何从 Wordpress 中的 Google Maps ACF 字段中删除纬度和经度?

Wordpress:高级自定义字段:将字段导出和导入到新的 wordpress 安装

wordpress 的高级自定义字段

高级自定义字段 wordpress 图像大小

如何检查 Wordpress 高级自定义字段插件中的字段组?