Facebook にシェア
[`evernote` not found]
LINEで送る

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&v=2.x&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();?>と入力。
使いまわすのを想定してなかったので引数指定とかしてないけど、引数とか指定できるようにすればもうちょい汎用性あがるかも?