wordpress - 升级 WP 插件后 Google Maps API V3 出现错误

标签 wordpress google-maps google-maps-api-3

升级 WP 高级自定义字段后,我在使用 google map 时遇到问题。 map 显示正确,但页面不断加载。 FF 中的 JS 错误控制台显示错误:

Error: a is undefined
Source File: https://maps.gstatic.com/intl/en_us/mapfiles/api-3/10/19/main.js
Line: 70

Error: q.queue[Za]() is not a function
Source File: https://maps.gstatic.com/intl/en_us/mapfiles/api-3/10/19/main.js
Line: 74

我生成 map JS 的代码是:

<script type="text/javascript" src="https://maps.google.com/maps/api/js?    key=AIzaSyCwynu3lxKxNPk5DNMWCx8oyGX8ka8_KqU&amp;sensor=false"></script>
<script type="text/javascript">
    //<![CDATA[
    var is_init = false;
    var map;
    function map_init() {
        var latlng = new google.maps.LatLng(<?php echo $lat; ?>, <?php echo $lng; ?    >);
        var myOptions = {
            zoom: <?php echo $zoom; ?>,
            center: latlng,
            scrollwheel: false,
            panControl: false,
            zoomControl: true,
            mapTypeControl: false,
            scaleControl: true,
            streetViewControl: true,
            overviewMapControl: false,
            mapTypeId: google.maps.MapTypeId.<?php echo $maptype; ?>
        };
        map = new google.maps.Map(document.getElementById("map_canvas"), myOp    tions);
        var marker;
        var latlng;

        <?php $i = 0; foreach($markers as $title=>$marker): ?>
        <?php if(!empty($marker['lat']) && !empty($marker['lng']))  { ?>
        latlng = new google.maps.LatLng(<?php echo $marker['lat']; ?>,<?php echo     $marker['lng']; ?>);
        marker<?php echo $i; ?> = new google.maps.Marker({
            position: latlng,
            map: map,
            icon: '/wp-content/themes/iw/marker/<?php echo $marker['typ']; ?    >.png',
            title: '<?php echo $title; ?>'
        });
        google.maps.event.addListener(marker<?php echo $i; ?>, 'click', function()     {   
            window.location.href = '<?php echo $marker['link']; ?>';
        });
            google.maps.event.addListener(marker<?php echo $i; ?>, 'mouseover',     function() {
            jQuery('.sbmlink<?php echo $i; ?>').addClass('mouseover');
        });
        google.maps.event.addListener(marker<?php echo $i; ?>, 'mouseout', func    tion() {
            jQuery('.sbmlink<?php echo $i; ?>').removeClass('mouseover');
        });
        <?php } ?>
        <?php $i++; endforeach; ?>
        is_init = true;

}
    jQuery(function(){
        jQuery('#map_button').click(function(){
            jQuery('#map_canvas').toggle();
            if (!is_init) {
                map_init();
            }
            if(jQuery('#map_button').html() == 'Hier klicken, um die Karte     einzublenden') {
                    jQuery('#map_button').html('Hier klicken, um die Karte auszublenden');
                document.cookie="mapstate=open; path=/;";
            } else {
                    jQuery('#map_button').html('Hier klicken, um die     Karte einzublenden');
                document.cookie="mapstate=closed; path=/;";
            }
        });
        <?php if ($mapstate == 'open' || ($map_default_open &&     !isset($_COOKIE['mapstate']))): ?>
        jQuery('#map_button').click();
        <?php endif; ?>
            jQuery.ajax({
            dataType : 'json',
        //  url : '/wetter.php?ort=<?php echo $custom['wetterort'][0]; ?>',
            success : function(data) {
                jQuery('.wetterzustand').html(data.wetterzustand);
                jQuery('.wettertemperatur').html(data.wettertemperatur + '     &deg;C');
                jQuery('.wettericon').html('<img alt="' +     data.wetterzustand + '" src="' + data.wettericon + '"/>');
            }
        });
    });
    //]]>
    </script>

最佳答案

出现这些错误是因为当我们更新 WordPress 时,它不更新 jquery-ui, 所以我们需要在主题的functions.php中手动插入代码来更新jquery-ui。 我也遇到了同样的问题。它帮助了我。

    function new_google_map_script($post) {

        wp_enqueue_style('admin-main', get_bloginfo('template_url') . '/css/admin-main.css');
        //wp_enqueue_style('jquery-ui', get_bloginfo('template_url') . '/css/jquery-ui.css');
        wp_enqueue_style('wp-jquery-ui');
        wp_enqueue_style('wp-jquery-ui-dialog');
    }
    add_action('wp_enqueue_scripts', 'new_google_map_script');

关于wordpress - 升级 WP 插件后 Google Maps API V3 出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13936860/

相关文章:

javascript - 如何在标记谷歌地图中添加地址?

php - WordPress 站点的 Linux/PHP 服务器设置

css - wordpress 样式表加载

android - CollapsingToolbarLayout 中的内容顶部被工具栏背景颜色遮挡

javascript - 谷歌地图定位问题

javascript - 谷歌地图 v3 默认(动态)蓝点作为标记

css - 隐藏一个部分的 Wordpress 登录页面

WordPress 函数获取帖子的顶级类别?

javascript - 将 Flash Google Maps API 转换为基于 Flash 的 Javascript?

java - Google 地理编码返回 ZERO_RESULTS