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

时间:2015-02-03 19:12:12

标签: wordpress google-maps advanced-custom-fields

我有一些代码可以根据名为' event_map'的自定义字段提供的位置字段生成Google地图以显示标记。它很棒。

<?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; ?>

我现在想要添加一张地图,其中显示来自&#39;巡回日期&#39;的所有帖子中的所有标记。自定义帖子类型。如果所有这些帖子都有一个名为&#39; event_map&#39;的字段,我将如何做到这一点?从中抽取位置数据?我很难过并且感激不尽。

2 个答案:

答案 0 :(得分:1)

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

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

我不确定你用什么来显示地图,所以除此之外我无能为力。

答案 1 :(得分:1)

获取具有此类帖子类型的帖子并在其上循环,然后使用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; ?>