我正在尝试在 wordpress 插件(帖子上的 metabox)上实现这个示例http://jsfiddle.net/gzF6w/1/(来自另一个问题,这里是 stak)。
由于某种原因,该框未按应有的方式显示地图。
到目前为止,这是我的代码
// Put the script on the head after jQuery is loaded
function map_script_one($hook) {
wp_deregister_script('googlemapsapi3');
wp_enqueue_script('googlemapsapi3', 'http://maps.google.com/maps/api/js?sensor=false', false, '3', false);
wp_enqueue_script( 'gmap3', get_site_url().'/wp-content/plugins/maps/gmap3-3.4-min.js', array('jquery'));
wp_enqueue_script( 'autocomplete', get_site_url().'/wp-content/plugins/maps/jquery-autocomplete.min.js', array('jquery'));
}
add_action( 'admin_enqueue_scripts', 'map_script_one' );
// Include some css and jQuery script for the maps
function map_script_two() { ?>
<link rel="stylesheet" type="text/css" href="'.get_site_url().'/wp-content/plugins/maps/jquery-autocomplete.css"/>
<style>
.gmap3{
margin: 20px auto;
border: 1px dashed #C0C0C0;
width: 1000px;
height: 500px;
}
.ui-menu .ui-menu-item{
text-align: left;
font-weight: normal;
}
.ui-menu .ui-menu-item a.ui-state-hover{
border: 1px solid red;
background: #FFBFBF;
color: black;
font-weight:bold;
}
</style>
<script type="text/javascript">
jQuery(function(){
jQuery('#test').gmap3();
jQuery('#address').autocomplete({
source: function() {
jQuery("#test").gmap3({
action:'getAddress',
address: jQuery(this).val(),
callback:function(results){
if (!results) return;
jQuery('#address').autocomplete(
'display',
results,
false
);
}
});
},
cb:{
cast: function(item){
return item.formatted_address;
},
select: function(item) {
jQuery("#test").gmap3(
{action:'clear', name:'marker'},
{action:'addMarker',
latLng:item.geometry.location,
map:{center:true}
}
);
}
}
})
.focus();
});
</script><?php
}
add_action( 'admin_head', 'map_script_two' );
// Create the box
function set_map_box() {
add_meta_box('addressmap', 'Address Map', 'address_map', 'post', 'normal', 'default');
}
add_action('admin_init','set_map_box');
// Content of the box
function address_map() {
global $post; ?>
<input type="text" id="address" size="60">
<div id="test" class="gmap3"></div>
<?php } // more code after.
到目前为止,我试图在脚本上将“$”更改为 jQuery,从 wordpress 中注销原始 jquery 并使用另一个版本,禁用所有插件并删除此自定义插件上不必要的代码,但到目前为止似乎没有任何效果:(
知道可能是什么问题吗?
基本上,该示例所做的是显示一个框,用户可以在其中输入地址,并且地图会更新为该地址。