好吧,我终于做到了。在我的php文件中,对于传单图:
<div id="mapid">
<?php
// Default arguments
if ( have_posts() ) : ?>
<?php
/* Start the Loop */
while ( have_posts() ) : the_post();
$lat = get_post_meta( $post->ID, \'lat\', true );
$lng = get_post_meta( $post->ID, \'lng\', true );
ob_start();
the_content();
$content = ob_get_clean();
?>
<div class="marker" data-url="<?php the_permalink(); ?>"
data-lat="<?php echo $lat; ?>"
data-lng="<?php echo $lng; ?>"
data-content="<?php echo esc_attr($content); ?>">
</div>
<?php
endwhile;
// Reset post data
wp_reset_postdata();?>
<?php endif; ?>
</div>
<div id="sidebar">
</div>
我尝试了这里建议的解决方案:
data-content="<?php echo esc_attr( get_the_content() ); ?>"
但是get\\u the\\u content()不会自动嵌入视频。如果我尝试使用“the\\u content”
data-content="<?php echo esc_attr( get_the_content() ); ?>"
或
<div class="marker" data-url="<?php the_permalink(); ?>"
data-lat="<?php echo $lat; ?>"
data-lng="<?php echo $lng; ?>"
>
它复制了我在页面和地图上的帖子。因此,最后一个解决方案只允许我显示地图和标记,而不复制帖子,并允许我在侧栏中正确显示内容
在js文件中:
$(\'.marker\').each(function() {
var lat = $(this).attr(\'data-lat\')
var lng = $(this).attr(\'data-lng\')
var text = $(this).attr(\'data-content\')
var sidebar =$(\'#sidebar\')
var marker = new L.marker([ lat, lng ]).addTo(map)
marker.on(\'click\',function(){
sidebar.addClass(\'move\')
sidebar.html(text)
})
map.on(\'click\',function(){
sidebar.removeClass(\'move\')
})
});
我还必须为页面中的所有容器指定一个100%的高度,因为没有这个高度,我的页面是空白的。感谢Krzysiek Dródż对您的帮助。