【问题标题】:Shortcode within a shortcode in WP?WP中的简码中的简码?
【发布时间】:2019-08-08 18:37:53
【问题描述】:

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

我使用地图插件(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"]

【问题讨论】:

  • 我不认为你可以传递这样的参数。为什么不在短代码中使用 get_field() 来检索经纬度值呢?
  • 感谢您的意见。我没有达到那个水平——我的知识非常基础——所以我不知道该怎么做。你能帮帮我吗?
  • 如果您共享用于注册传单地图简码的代码,我们可能会为您提供帮助,因此请编辑您的问题以包含它。
  • 对不起,它是插件的一部分,所以我真的不知道从哪里开始寻找:-(
  • 那么你有两个选择:分享该插件的链接,或者直接向插件开发者寻求帮助。

标签: php wordpress advanced-custom-fields


【解决方案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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-10
    • 1970-01-01
    相关资源
    最近更新 更多