私の作ったプラグイン「Google Maps Anywhere」はメンテナンスを停止しています。
Google Maps API ver.2 までしか対応していないため、ver.3 に対応した「Simple Map」プラグインへの移行をお勧めします。
Simple Map の説明については、みやさんのブログを参考にしてください。
Simple Map – 超簡単&スマフォ対応のGoogle Map | firegoby
この二つのプラグインはショートコードで Google Maps を表示するという同機能を持っています。
パラメータに着いても互換性がありますが、ショートコードタグが異なりますので、過去記事に Google Maps Anywhere で埋め込まれたショートコードを書き換えてあげる必要があります。
以下の SQL 文を実行することで対応できます。
SQL 文を実行する前には mysqldump コマンドや phpMyAdmin 等でデータをバックアップしておくことをお勧めします。
丁度移行する必要がある機会があったので、参考とさせていただきました。
functions.phpへフィルタを追記すればDBの変更なしでも変換できそうではあります(未検証ですが)
function googlemap_to_map($text) {
if ( preg_match("/\[googlemap/",$text) ){
$text = preg_replace("/\[googlemap/", '[map', $text);
$text = preg_replace("/\[\/googlemap\]/", '[/map]', $text);
}
return $text;
}
add_filter('the_content', 'googlemap_to_map', 1);
また、[ map lat=”xxxx” lng=”yyyy” ](観光地名)[ /map ]のような場合だと、
観光地名の方が優先されてlat、lngが無視される、空白で表示されるということもあるため、
simple-map.phpの最後のreturnの前に
if(!$lat && !$lng ){
if (isset($p['lat']) && preg_match("/^\-?[0-9\.]+$/", $p['lat'])
&& isset($p['lng']) && preg_match("/^\-?[0-9\.]+$/", $p['lng'])){
$lat = $p['lat'];
$lng = $p['lng'];
}
}
を挿入し、simplemap.jsでは
if(a(d).text().length){
を
if(!a(d).attr("data-lat")&&!a(d).attr("data-lng")&&a(d).text().length)
にして対処を試みております。
一時的な対策ではありますが、ご参考まで。