6

升级 WP Advanced Custom Fields 后,我遇到了 google maps 的问题。地图显示正确,但页面无休止地加载。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

我生成地图 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>
4

1 回答 1

0

出现这些错误是因为当我们更新 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');
于 2015-03-24T08:02:19.610 回答