简体   繁体   English

如何添加谷歌地图脚本到WordPress的职位?

[英]How to add google maps script to wordpress post?

I want to insert a piece of javascript to Wordpress post page, What is the best way to insert this code? 我想在WordPress帖子页面中插入一段JavaScript,插入此代码的最佳方法是什么?

<style type="text/css">
    #map-canvas { height: 100%; margin: 0; padding: 0;}
    </style>
    <script type="text/javascript"
      src="https://maps.googleapis.com/maps/api/js?key=api">
    </script>
    <script type="text/javascript">
      function initialize() {
        var mapOptions = {
          center: { lat: -34.397, lng: 150.644},
          zoom: 8
        };
        var map = new google.maps.Map(document.getElementById('map-canvas'),
            mapOptions);
      }
      google.maps.event.addDomListener(window, 'load', initialize);
    </script>
<div id="map-canvas"></div>

How can I HARDCODE THIS? 我如何对此进行硬编码? how to insert div elements correctly to my post? 如何将div元素正确插入我的帖子?

The best way would be using wp_enqueue_script and wp_register_script functions to include the javascript files using the wp_enqueue_Scripts hook 最好的方法是使用wp_enqueue_scriptwp_register_script函数通过wp_enqueue_Scripts钩子包含javascript文件

I would do the following: 我将执行以下操作:

in your functions.php : 在您的functions.php中

add_action( 'wp_enqueue_scripts', 'add_my_scripts' );
function add_my_scripts(){
    // register the scripts
    wp_register_script( 'gmap', 'https://maps.googleapis.com/maps/api/js?key=api' );
    wp_register_script( 'theme-js', get_stylesheet_directory_uri() . '/js/my-script.js', array('gmap') );

    // enqueue only if needed
    if( is_page('your-map-page') ) {
        wp_enqueue_script('gmap');
        wp_enqueue_script('theme-js');
    }
}
// register a shortcode to use like [google-map]
add_shortcode('google-map', 'google_map_func');
function google_map_func() {
    return '<div id="map-canvas" style="height: 100%; margin: 0;padding: 0;"></div>';
}

In your my-script.js : 在您的my-script.js中

function initialize() {
    var mapOptions = {
      center: { lat: -34.397, lng: 150.644},
      zoom: 8
    };
    var map = new google.maps.Map(document.getElementById('map-canvas'),
        mapOptions);
  }
  google.maps.event.addDomListener(window, 'load', initialize);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM