在安装了ACF插件的wordpress网站中,我在帖子页面上创建了一个自定义字段,用于指导您复制/粘贴从此站点map-embed.com生成的代码,以便您快速轻松地访问在网站上显示谷歌地图位置。
问题是,我们不希望地图可滚动,但默认情况下嵌入代码不包括" scrollwheel:false,draggable:false,"在地图的(myOptions)javascript区域
这是它生成的代码示例:
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script><div style="overflow:hidden;height:500px;width:600px;"><div id="gmap_canvas" style="height:500px;width:600px;"></div><style>#gmap_canvas img{max-width:none!important;background:none!important}</style><a class="google-map-code" href="http://www.themecircle.net/photography/" id="get-map-data">themecircle</a></div><script type="text/javascript"> function init_map(){var myOptions = {zoom:14,center:new google.maps.LatLng(40.805478,-73.96522499999998),mapTypeId: google.maps.MapTypeId.ROADMAP};map = new google.maps.Map(document.getElementById("gmap_canvas"), myOptions);marker = new google.maps.Marker({map: map,position: new google.maps.LatLng(40.805478, -73.96522499999998)});infowindow = new google.maps.InfoWindow({content:"<b>The Breslin</b><br/>2880 Broadway<br/> New York" });google.maps.event.addListener(marker, "click", function(){infowindow.open(map,marker);});infowindow.open(map,marker);}google.maps.event.addDomListener(window, 'load', init_map);</script>
我失败的尝试是添加一个jquery查找并替换自定义代码。它只在某些时候起作用,并且还有错误。
我正在考虑另一个解决方案,它需要工作&#34;原样&#34; bc他已经在数据库中使用嵌入代码创建了100个帖子。
这是一个可能的解决方案吗?
使用ACF显示代码的php示例:
echo the_field('map-embed-code');
是否可以找到&#34;元数据&#34;在该字段的数据库中并替换&#34;数据HTML&#34;在吐出代码之前使用一些代码?
这样的事情)
$mapFix = get_field('map-embed-code');
if ( $mapFix ) {
? find meta data ?
? var myOptions = { ?
? replace with ?
? var myOptions = {scrollwheel: false, draggable: false, ?
echo the_field('map-embed-code ? with new replaced HTML ?');
} else {
echo 'no map code!';
}
所以基本上重写数据库中的内容,并将正确的变量添加到地图脚本中,以便滚动不再有效?
答案 0 :(得分:0)
想想我明白了......如果其他人需要修复......我使用了php的字符串替换
$mapfix = get_field('office_space_map');
if (strpos($mapfix,'myOptions = {zoom:14,') == true) {
$mapfix = str_replace('myOptions = {zoom:14,', 'myOptions = {scrollwheel: false, draggable: false, zoom:14,', $mapfix);
echo $mapfix;
} else {
echo the_field('office_space_map');;
}