WP中的简码内的简码?

时间:2019-08-08 18:37:53

标签: php wordpress advanced-custom-fields

我正在建立房地产网站,并尝试创建以下内容:

我使用了一个地图插件(Leaflet Map),从而可以通过短代码在每个帖子(属性列表)中快速创建地图。我使用的短代码对于每个列表都是(或多或少)静态的,只有经纬度和经纬度的坐标在属性之间变化。看起来像这样:

[leaflet-map lat=36.509880 lng=-4.876681 zoom=15 zoomcontrol scrollwheel="1"]

我还在WP中使用ACF(高级自定义字段)插件。我将其用于每个列表,其中包含大小,面积,房间数量等字段。我也有2个字段,一个用于纬度,一个用于经度-来自这些字段的值应直接输入到上面看到的简码中,从而在前端显示地图,并正确列出属性列表。通常,我使用以下短代码将我的任何高级自定义字段中的值插入到我的帖子/列表页中:

[acf field="name of the custom field"]

但是将acf简码插入传单地图简码中是行不通的:

[leaflet-map lat=[acf field="latitude"] lng=[acf field="longtitude"] zoom=15 zoomcontrol scrollwheel="1"]

有人可以帮助我解决如何实现这一目标吗?

谢谢!

将acf简码插入传单地图简码中:

[leaflet-map lat=[acf field="latitude"] lng=[acf field="longtitude"] zoom=15 zoomcontrol scrollwheel="1"]
[leaflet-map lat=[acf field="latitude"] lng=[acf field="longtitude"] zoom=15 zoomcontrol scrollwheel="1"]

1 个答案:

答案 0 :(得分:1)

听起来最好使用将查询的ACF字段传递到do_shortcode()函数中。

类似...

if (have_rows($field_name) :
    while (have_rows($field_name) : the_row; 
        $latitude = get_field('latitude');
        $longitude = get_field('longitude');
        do_shortcode('[leaflet-map lat=' . $latitude . ' lng=' . $longitude . ' zoom=15 zoomcontrol scrollwheel="1"]');
    endwhile;
endif;