高级自定义字段和谷歌地图多个标记



我有一些代码可以生成一个谷歌地图,以根据通过名为"event_map"的自定义字段提供的位置字段显示标记。效果很好。

<?php 
$location = get_field('event_map');
if( !empty($location) ):
?>
<div class="acf-map">
<div class="marker" data-lat="<?php echo $location['lat']; ?>" data-lng="<?php echo $location['lng']; ?>"></div>
</div>
<?php endif; ?>

我现在想添加一个地图,显示"旅游日期"自定义帖子类型中所有帖子的所有标记。假设所有这些帖子都有一个名为"event_map"的字段来绘制位置数据,我将如何做到这一点?我很困惑,任何帮助都值得赞赏。

获取具有此类帖子类型的帖子并在其上循环,然后使用 ACF API get_field(第二个参数让我们定义自定义字段值所属的帖子 ID)。

<?php 
$tours = get_posts( array(
   'post_type' => 'tour-dates', 
   'posts_per_page' => -1
));
if( !empty($tours) ): ?>

<div class="acf-map">
  <?php foreach($tours as $tour): ?>
    <?php
     $location = get_field('event_map',$tour->ID);
     if( !empty($location) ): ?>
     <div class="marker" data-lat="<?php echo $location['lat']; ?>" data-lng="<?php echo $location['lng']; ?>"></div>
    <?php endif; ?>
  <?php endforeach; ?> 
</div> 
<?php endif; ?>

此查询应获取event_map字段中包含信息的所有tour-dates帖子。

$new_loop = new WP_Query( array(
    'post_type' => 'tour-dates',
    'posts_per_page' => -1,
    'meta_query' => array(
        array(
            'key' => 'event_map',
            'compare' => 'EXISTS'
        )
    )
) );

我不确定你用什么来显示地图,所以我无法提供帮助。

最新更新