[英]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.