簡體   English   中英

在Google Map Infowindow中獲取Wordpress發布內容

[英]get wordpress post content in google map infowindow

我創建了一個基於googlemaps的分支頁面,在該頁面中,這些位置是通過自定義帖子類型和Google地圖高級自定義字段對象創建的。

唯一的問題是:如果我想在infoWindow中放置帖子的內容(以顯示位置的詳細信息等),而內容又多了一行,則代碼會中斷...

例如

這將正常工作:

Lorem ipsum dolor sit amet, id malorum numquam per

但這會中斷:

Lorem ipsum dolor sit amet,
id malorum numquam per

這是獲取位置內容的代碼:

        var locations = [<?php while( $wp_query->have_posts() ){
        $wp_query->the_post();
        $location = get_field('google_map'); 
        ?>
        //acf location's details array
        ['<h1><?php the_title(); ?></h1><h2><?php the_field('branch_name'); ?></h2><div id=<?php echo $post->ID; ?>><?php echo $post->post_content; ?></div>', 
        <?php echo $location['lat']; ?>, <?php echo $location['lng'];?>, <?php $NUM++ ?>],
        <?php } ?> ];

這就是我將其發送到信息窗口的方式:

            google.maps.event.addListener(marker, 'click', (function(marker, i) {
        return function() {
                infowindow.setContent(locations[i][0]);
                infowindow.open(map, marker);
                for (var j = 0; j < markers.length; j++) {
                markers[j].setIcon("<?php echo get_template_directory_uri(); ?>/images/mapmarker.png");
            }
            marker.setIcon("<?php echo get_template_directory_uri(); ?>/images/mapmarker-active.png");
        };
    })(marker, i));

這是指向完整模板代碼的代碼共享鏈接: http : //www.codeshare.io/zaj6n

使用json_encode來打印包含換行符(或在JS中會出現問題的字符,例如引號)的字符串:

echo json_encode($post->post_content);

為避免由json_encode創建的雙引號填充一個具有所需值的PHP數組,並使用json_encode打印整個數組:

(未測試)

<?php 
  $locations=array();
  while( $wp_query->have_posts() ){
        $wp_query->the_post();
        $location = get_field('google_map');
        $locations[]=array(the_title('<h1>','</h1>',false).
                             '<h2>'.get_field('branch_name').'</h2>'.
                             '<div id="'.$post->ID.'">'.$post->post_content.'</div>',
                           $location['lat'],
                           $location['lng'],
                           $NUM++
                           ); 
  }
  echo "\nvar locations=".json_encode($locations).";\n";

?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM