高级自定义字段 - 如果字段已替换此内容,则为php

时间:2015-10-16 17:56:34

标签: php replace metadata advanced-custom-fields

在安装了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!';
    }

所以基本上重写数据库中的内容,并将正确的变量添加到地图脚本中,以便滚动不再有效?

1 个答案:

答案 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');;
}
相关问题