gpt4 book ai didi

wordpress - 使用 wp_enqueue_script 加载 Google Maps API

转载 作者:行者123 更新时间:2023-12-04 14:49:24 24 4
gpt4 key购买 nike

我正在尝试使用以下语法加载 Google Maps API:

add_action('admin_enqueue_scripts', 'load_google_maps');
...
function load_google_maps()
{
// The actual API key is configured in an options page
$key = get_option('google_maps_api_key');
$gmaps_url = 'http://maps.googleapis.com/maps/api/js?key=' . $key . '&sensor=false';
wp_enqueue_script('google-maps', $gmaps_url, NULL, NULL);
}
WordPress 正在将“&”转义为“&”。这实际上使谷歌服务器拒绝请求。当我将它直接输入到浏览器地址栏中并以“&sensor=false”结尾时,它加载得很好。
我在 WordPress trac 系统中看到了一个此类错误: http://core.trac.wordpress.org/ticket/9243但它被认为无效,并且响应请求的管理员以某种方式表明“&”方法很好。从谷歌的角度来看,这绝对不好。
我当然可以让函数将 HTML 作为脚本标记回显,但如果可能的话,我宁愿使用 wp_enqueue_script 系统。
有谁知道解决这个问题的方法?
干杯,
拉夫

最佳答案

我在我们的代码中有类似的东西,它工作正常(甚至编码为 &#038 )。我怀疑你的问题是它被双重编码,因为你已经有了 & .尝试将其更改为:

$gmaps_url = 'http://maps.googleapis.com/maps/api/js?key=' . $key . '&sensor=false';

就其值(value)而言,我们的(工作)代码是:
wp_register_script('googlemaps', 'http://maps.googleapis.com/maps/api/js?' . $locale . '&key=' . GOOGLE_MAPS_V3_API_KEY . '&sensor=false', false, '3');
wp_enqueue_script('googlemaps');

( $locale 在这种情况下设置为 hl=en )

编辑

看起来行为在最新版本的 WordPress 中发生了变化 - 以上不起作用(但我会将它留给使用旧​​版本的人)。我能看到的唯一替代方法是添加一个 clean_url过滤器,像这样:
add_filter('clean_url', 'so_handle_038', 99, 3);
function so_handle_038($url, $original_url, $_context) {
if (strstr($url, "googleapis.com") !== false) {
$url = str_replace("&", "&", $url); // or $url = $original_url
}

return $url;
}

相当丑陋,但可能比回显脚本稍微好一点,因为它仍然会使用 WordPress 依赖管理。

关于wordpress - 使用 wp_enqueue_script 加载 Google Maps API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9504142/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com