投稿ページを保存または更新するたび、フックを使い、住所から緯度と経度を取得する仕組みを作っていました。
少し前まで問題なく緯度・経度を取得できていたのですが、いつの間にか取得できなくなっていました。
調べたところ「Google MapのAPIが必要になっていた」というのが原因のようでした。
さっそくAPIを取得し、コードに盛り込んだのですが、以前のように緯度・経度が取得できません。
コードがおかしいのだと思うのですが、問題点を教えていただけませんでしょうか。
ちなみに「functions.php」のコードです。
カッコ内はそれぞれのフィールド名です。
住所(address)
緯度(lat)
経度(lon)
APIキーはXXXXXXXXXXXXXXXXXと書かせていただいております。
functions.phpのコードです。
add_action('save_post','set_cf_latlng'); function geocode($address){ $req ='http://maps.googleapis.com/maps/api/geocode/xml'; $req .='?address='.urlencode($address); $req .='&key=XXXXXXXXXXXXXXXXX'; $req .='&sensor=false'; $xml = simplexml_load_file($req) or die('XML parsing error'); if ($xml->status =='OK') { $loc[0] = (string)$xml->result->geometry->location->lat; $loc[1] = (string)$xml->result->geometry->location->lng; } return $loc; } function set_cf_latlng($postID){ if($parent_id = wp_is_post_revision($postID)) { $postID = $parent_id; } $address = get_post_meta($postID , 'address',true); if( $address ){ $location = geocode($address); if ( !add_post_meta($postID, 'lat', $location[0], true) ) update_post_meta($postID,'lat', $location[0] ); if ( !add_post_meta($postID, 'lon', $location[1], true) ) update_post_meta($postID,'lon', $location[1] ); }else{ delete_post_meta($postID ,'lat'); delete_post_meta($postID ,'lon'); } }
https://webservicies.net/googlemaps-api/
2018年6月11以降にGoogleMapsAPIを使用する際は
必ずAPIキーを発行しなければならず
かつ課金アカウントを登録し
プロジェクト(APIキー)と紐付けなければなりません
とのことです
ええ、それは存じ上げております。
2019/06/16 04:13:31回答ありがとうございます。