Php 将acf字段传递给传单JS

Php 将acf字段传递给传单JS,php,wordpress,leaflet,advanced-custom-fields,Php,Wordpress,Leaflet,Advanced Custom Fields,我在互联网上发现了这个例子,它非常接近我想要做的事情。 我有一些ACF字段,带有一些标记的纬度和经度,我试图在同一地图中显示自定义帖子类型位置的所有标记。 但我只得到1,我做错了什么 我想是和marker div有关 纬度: Longitud: #地图, #acf地图{ 高度:500px; } 请确保您正在回显自定义字段值。 示例:data lat=“”和data lat=“”您需要将div.marker放入循环中,以显示具有自定义lat long值的多个标记 <?php whil

我在互联网上发现了这个例子,它非常接近我想要做的事情。 我有一些ACF字段,带有一些标记的纬度和经度,我试图在同一地图中显示自定义帖子类型位置的所有标记。 但我只得到1,我做错了什么

我想是和marker div有关


纬度:

Longitud:

#地图, #acf地图{ 高度:500px; }
请确保您正在回显自定义字段值。
示例:
data lat=“”
data lat=“”

您需要将div.marker放入循环中,以显示具有自定义lat long值的多个标记

<?php while( $query->have_posts() ) : $query->the_post() ?>
  <div class="marker" 
    data-lat="<?php echo get_field( 'lat' ) ?>" 
    data-lng="<?php echo get_field( 'lon' ); ?>"
    data-title="<?php echo get_field( 'subtitle' )  ?>" 
    data-url="<?php echo 'link'; ?>"
    data-category="<?php echo 'category'; ?>" >
  </div>
<?php endwhile; wp_reset_postdata(); ?>


“lat”和“lon”值是否按预期显示在循环中?好的,抱歉,我误解了您的问题。所以你在地图上只能看到一个标记。这是因为您在循环外部创建了div.marker。您需要在POST中循环,并使用自定义的lat-long值生成多个div.marker元素。
var markers = [];

$.each($('.marker'), function () {
    var marker = [];
    var lat = $(this).attr('data-lat');
    var lng = $(this).attr('data-lng');
    var name = $(this).attr('data-title');
    var link = $(this).attr('data-url');
    console.log('Marker es: ' + marker);
    marker = [name, lat, lng, link];
    console.log('Y ahora es: ' + marker);
    console.log(marker);
    markers.push( marker );
});


console.log(markers);
console.log(markers.length);
for (var i = 0; i < markers.length; i++) {
    marker = new L.marker([markers[i][1], markers[i][2]])
    .bindPopup(markers[i][0])
    .addTo(map);
}