情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。
グーグルマップに全物件のマーカーを表示し、クリック時にリンク付きでタイトルを表示する。
*座標の登録にはACFを使用
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> <div id="map"></div> <script type="text/javascript"> function attachMessage(marker, msg) { google.maps.event.addListener(marker, 'click', function(event) { new google.maps.InfoWindow({ content: msg }).open(marker.getMap(), marker); }); } var data = new Array(); <?php $args = array( 'post_type' => 'bukken', 'posts_per_page' => -1, ); $the_query = new WP_Query( $args ); ?> <?php if ($the_query->have_posts()) : ?><?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?> <?php echo "data.push({position: new google.maps.LatLng("; ?><?php the_field('map'); ?><?php echo "), content: '"; ?><?php $link = get_permalink(); echo "<a href=$link>"; the_title(); echo "</a>"; ?><?php echo "'});"; ?> <?php endwhile; endif; wp_reset_query(); ?> var myMap = new google.maps.Map(document.getElementById('map'), { zoom: 15,//地図縮尺 center: new google.maps.LatLng(地図の中心座標), scrollwheel: false, mapTypeId: google.maps.MapTypeId.ROADMAP }); for (i = 0; i < data.length; i++) { var myMarker = new google.maps.Marker({ position: data[i].position, map: myMap }); attachMessage(myMarker, data[i].content); } </script>