カスタムフィールドに登録した住所からジオコードを自動で登録する方法

Custom fieldで”geocode_address”に住所を入力
その住所のジオコードを、custom fieldの”latitude”と”longitude”に自動で挿入してくれるスクリプト。
以下をfunctions.phpに入れておく。

function geocode_address($post_id)
{
$custom_fields = get_post_custom();
if(isset($custom_fields["geocode_address"]) && !empty($custom_fields["geocode_address"][0]))
{
$resp = wp_remote_get( "http://maps.googleapis.com/maps/api/geocode/json?address=".urlencode($custom_fields["geocode_address"][0])."&sensor=false" );
if ( 200 == $resp['response']['code'] ) {
$body = $resp['body'];
$data = json_decode($body);
if($data->status=="OK"){
$latitude = $data->results[0]->geometry->location->lat;
$longitude = $data->results[0]->geometry->location->lng;
update_post_meta($post_id, "latitude", $latitude);
update_post_meta($post_id, "longitude", $longitude);
}
}
}
}
add_action('save_post', 'geocode_address');

参照 and credit goes to:
http://forrst.com/posts/Geocoding_a_custom_field_in_Wordpress-Lbs

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です