メモ カスタムフィールドの値からgooglemapを表示する関数
googlemapを利用するとき、いちいちコードを入力するのが大変だし、緯度経度を割り出すのが面倒なので
カスタムフィールドに住所を打ち込むと地図を表示してくれる関数。非常に参考になったサイトがあったはずだけど
URLが思い出せない。
以上の内容をfunctions.phpに入力しておく。
function St_gmap_func() { $apikey = "XXXXXXXXXXXX"; //ここに取得したgoogleAPIキーを入力 $width = "280px"; //横幅を入力 $height = "250px"; //縦幅を入力 $zoom = "14"; // ズームを入力 $id = "gmap01"; //IDを入力 $popmsg = "0"; //メッセージを表示するか入力 //オプションによる色々変更 $content = post_custom('所在地'); //キーとなるカスタムフィールドの名前を入力 if($popmsg){$marker = "marker.openInfoWindowHtml('$content');";} return <<<_EOT_ <script src="http://maps.google.com/maps?file=api&amp;v=2.x&amp;key=$apikey" type="text/javascript"></script> <div id="$id" style="width: $width; height: $height"></div> <script type="text/javascript"> map = new GMap2(document.getElementById("$id")); geocoder = new GClientGeocoder(); geocoder.getLatLng("$content", function(point) { if (!point) { alert("$content" + " not found"); } else { map.setCenter(point, $zoom); var marker = new GMarker(point); map.addOverlay(marker); $marker; } }); </script> _EOT_; }
その後、埋め込みたい場所に<?php echo St_gmap_func();?>と入力。
使いまわすのを想定してなかったので引数指定とかしてないけど、引数とか指定できるようにすればもうちょい汎用性あがるかも?