サポート » 使い方全般 » 投稿ページから記事ごとに地図を表示したい

  • 解決済 akichan1

    (@akichan1)


    こんにちは

    記事ごと・ページ毎にgoogle mapを表示したくて
    Google Maps Anywhere プラグインなどを試してみたのですが
    どれもgoogle maps APIキーが必要と書いてあります。
    APIキーを取得しようとgoogleサイトへ行くとv3からはAPIキーは廃止されたと
    書かれていますので上のプラグインでは全く進みません。

    やりたい事はカスタム投稿でお店リストを作ってページ内に地図を表示したいので
    投稿ページ内に住所入力し、指定した位置に地図が表示される様にしたいです。

    APIv3の記事を読んでも殆ど理解出来ませんでした

    どうかよろしくお願い致します

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • モデレーター gatespace

    (@gatespace)

    プラグイン Google Maps v3 Shortcode を使う方法ではダメですか?
    http://wordpress.org/extend/plugins/google-maps-v3-shortcode/

    [map address="住所"] で使えるようです。
    プラグイン自体は英語ですが、Google検索をかけると日本語で解説しているサイトがたくさんあります。

    トピック投稿者 akichan1

    (@akichan1)

    ありがとうございます、実際にGoogle Maps v3 Shortcodeを使ってみました。
    記事内への表示は出来たのですがこれを
    カスタムフィールドと組み合す事は可能でしょうか?
    例えば
    ‘[map address=”ここにカスタムフィールドの値” marker=”yes”]’
    としてテンプレートに埋め込みたいのです。

    試しにテンプレートファイルに書き込んだところ、コードがそのまま表示されて
    地図は表示されませんでした。

    私が無知なだけだとは思いますが何卒アドバイス願います。

    モデレーター gatespace

    (@gatespace)

    テンプレート内で表示する場所が固定ならdo_shortcodeを使ってみてください。
    http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/do_shortcode

    サンプル:カスタムフィールドのキーが「adr」の場合。

    <?php
    if (function_exists('mapme')) {
    	$adr = esc_html(get_post_meta($post->ID, adr, true));
    	echo do_shortcode('[map address="'.$adr.'" marker="yes" w="400" h="300" z="14" id="shopmap"]');
    }
    ?>

    http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/do_shortcode

    こちらでできると思います。
    私も1月ごろにGoogle Maps Anywhereを使って作っていたのですがその時は確かにAPIキー取得ができたはずなのに
    いざサーバを変えてやろうとしたらAPIキーが取れずにあっちこっち書き換える羽目になりました

    トピック投稿者 akichan1

    (@akichan1)

    ありがとうございます!
    do_shortcodeの記述までは何とか成功しました。

    ただ、表示される地図がアフリカのもっと向こうの海なんです・・・
    カスタムフィールドの値を読んでいないんですかね?

    <?php
    if (function_exists('mapme')) {
    	$adr = esc_html(get_post_meta($post->ID, adr, true));
    	echo do_shortcode('[map address="'.$adr.'" marker="yes" w="400" h="300" z="14" id="shopmap"]');
    }
    ?>

    をコピーさせて頂き、文中のadrの部分2箇所をカスタムフィールドの値に書き換えました。

    カスタムフィールドへの記述がダメなんですか?

    モデレーター gatespace

    (@gatespace)

    get_post_metaの「adr」だけをカスタムフィールドの「名前(キー)」にしてみてくださいね。
    関数についてはCodexを参照してください。

    コードにコメントを付け足してみますので、
    どこを変更してみれば良いのか考えてみてくださいね。

    <?php
    // Google Maps v3 Shortcodeが有効化されている場合のみマップを表示する
    if (function_exists('mapme')) {
    	// 変数「adr」(名前は任意)にカスタムフィールド「adr」の値を入れる
    	// その際、データのサニタイズもしておく
    	$adr = esc_html(get_post_meta($post->ID, adr, true));
    	// do_shortcodeでマップ出力。その際addressには変数「adr」の値を入れる
    	echo do_shortcode('[map address="'.$adr.'" marker="yes" w="400" h="300" z="14" id="shopmap"]');
    }
    ?>

    変数(ここではadr)に期待通りの値が代入されているかどうかは
    <?php echo $adr; ?>とでもして確認してみてください。

    トピック投稿者 akichan1

    (@akichan1)

    出来ました、ありがとうございます!!

    上記のadrを書き換えたところ正常に表示されました。

    この度はありがとうございます、またよろしくお願い致します。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • トピック「投稿ページから記事ごとに地図を表示したい」には新たに返信することはできません。