我有一些代码可以生成一个谷歌地图,以根据通过名为"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'
)
)
) );
我不确定你用什么来显示地图,所以我无法提供帮助。