使用Google Maps Javascript API时,Google地图无法在WordPress中显示

时间:2016-09-14 作者:steamfunk

我想知道是否有人能帮我。我目前正在尝试设置google maps Javascript API,以便在本地主机上与wordpress配合使用,但没有成功。请在下面找到我的步骤。

-步骤1:我去了Google开发者API管理器,为Google Maps Javascript API启用了一个API。

-步骤2:我生成了一个API密钥。

-步骤3:我像这样嵌入了maps Javascript API,并包含了API键,其中显示key={MY API key}:

 if ( ! function_exists( \'foundationpress_scripts\' ) ) :
        function foundationpress_scripts() {



     //Load Google Maps API   
        wp_enqueue_script(\'google-maps\', \'https://maps.googleapis.com/maps/api/js?key={MY API KEY}\' );


 //Load custom JS script    
     wp_enqueue_script(\'custom-scripts\', get_stylesheet_directory_uri() . \'/assets/javascript/custom/custom-scripts.js\', array(), \'1.0.0\', true ); 


    // Add the comment-reply library on pages where it is necessary
        if ( is_singular() && comments_open() && get_option( \'thread_comments\' ) ) {
            wp_enqueue_script( \'comment-reply\' );
        }

        }

        add_action( \'wp_enqueue_scripts\', \'foundationpress_scripts\' );
    endif;
-步骤4:我创建了一个自定义脚本。js文件并加载到我指定的目录。

-步骤5:我添加了

 var map;
      function initMap() {
        map = new google.maps.Map(document.getElementById(\'map-canvas\'), {
          center: {lat: -34.397, lng: 150.644},
          zoom: 8
        });
      }
到自定义脚本。js文件。

步骤6:我创建了一个模板页面,并将其链接到仪表板内的一个页面,然后添加<div id="map-canvas"></div>.

我没有收到任何WP\\U调试错误,也没有收到任何开发人员控制台错误。有人知道为什么会这样吗。我感谢你的帮助。

1 个回复
最合适的回答,由SO网友:Dave Romsey 整理而成

我在做了一点小动作后,终于可以把它弄好了。给出#map-canvas 元素a高度(您可以在CSS中执行此操作):

<div id="map-canvas" style="height:500px"></div>
添加callback 的参数google-maps 编写URL脚本并添加deferasync 属性google-maps 脚本标记。还制造custom-scripts 的依赖项google-maps:

if ( ! function_exists( \'foundationpress_scripts\' ) ) :
function foundationpress_scripts() {
    //Load custom JS script    
    wp_enqueue_script(\'custom-scripts\', get_stylesheet_directory_uri() . \'/assets/javascript/custom/custom-scripts.js\', array(), \'1.0.0\', true ); 

    // Load Google Maps API. Make sure to add the callback and add custom-scripts dependency
    wp_enqueue_script(\'google-maps\', \'https://maps.googleapis.com/maps/api/js?key=MY_API_KEY&callback=initMap\',  array( \'custom-scripts\' ) ); 

    // Add the comment-reply library on pages where it is necessary
    if ( is_singular() && comments_open() && get_option( \'thread_comments\' ) ) {
        wp_enqueue_script( \'comment-reply\' );
    }
}

add_action( \'wp_enqueue_scripts\', \'foundationpress_scripts\' );
endif;

// Add async and defer attributes
function google_maps_script_attributes( $tag, $handle) {
    if ( \'google-maps\' !== $handle ) {
        return $tag;
  }
    return str_replace( \' src\', \' async="async" defer src\', $tag );
}
add_filter(\'script_loader_tag\', \'google_maps_script_attributes\', 10, 2);
修复所有内容后,请确保在浏览器中进行硬重新加载。