【WordPress】WordPressの記事に地図を表示させて、地図に任意のアイコンを載せたい【php】【JavaScript】

Windowsの仕様

エディション:Windows 10 Pro

バージョン:20H2

目次

経緯

WordPressで旅行記を書いているのですが、記事が羅列するだけでかっこわるかった。

そこで、トップ画面に地図を載せて、行った場所にアイコンを置いて、それをクリックすると

その記事に飛ぶという仕様にしたくて、勉強しました。

今回は、地図に任意のアイコンを載せるというところまでです。

手順

工程が多いので、初めに手順を書きます。

  1. Google Maps Platform からAPIキーを取得する
  2. JavaScriptファイルの配置
  3. 画像の配置
  4. functions.phpの編集
  5. 記事に書いてみる

といった流れです。

1. Google Maps PlatformからAPIキーを取得する

まず、Google Maps PlatfromからAPIキーを取得します。

https://mapsplatform.google.com/intl/ja/ にアクセスしてください。お金がかかることがあるので、注意してください。

”使ってみる”をクリック。アカウント選択がでるので、自身Googleのアカウントログインしてください。

ログインすると、「開始するにはプロジェクトを作成します」とでるので、適当に”プロジェクト名”など決めてください。できたら、”作成”をクリック。

「有効な請求アカウントがありません」とでます。”請求先アカウントを管理”をクリック。

”アカウントを作成”をクリック。

「新しい請求先アカウントの作成」とあるので、”名前”を適当な名前にして、”続行”をクリック。

「課金情報の設定」を記入して、”送信して課金を有効にする”をクリック。

次に”APIとサービス”をクリック

「有効なAPIサービス」とあり、その中に「最近のプロジェクトの選択」とあるので、先ほど作ったプロジェクトをクリック。

”ライブラリ”をクリック。

すると、「APIライブラリへようこそ」とでますので、今回使うAPI”Maps JavaScript API”をクリック。”有効にする”クリック。

「プロジェクト「」の請求先アカウント設定」と出るので、請求先アカウントを紐づけます。”アカウントを設定”をクリック。

質問がいくつか出てくるので、それに答えて、”送信”をクリック。

すると、「Google Maps Platformを使ってみる」とでるので、

”GOOGLE MAPS PLATFORMに移動”をクリック。

Google Maps Platformに飛びます。そこのサイドバーの”認証情報”をクリック。

「APIキー」のあたりに”Maps API Key”とあるのでそれをクリック。

すると、いろいろ制限ができる画面になります。右上に”鍵を表示します”をクリック。

「Maps API Key」とでて、自分のAPIキーが表示されます。

これでGoogle Maps PlatfromからAPIキーの取得は終わりです。

文章だけで書いたので、わかりにくいと思いますが、Google Maps PlatfromからAPIキーの取得の動画もたくさんあるので、それと併用しながらやるとわかりやすいと思います。

2. JavaScriptの配置

JavaScriptのファイルを配置

保存先は “/wp-content/themes/your-theme/js” ディレクトリを無い場合作成してください。*your-themeは自身が使っているテーマにしてください。

以下がコードです。”custom-map.js”という名前で保存します。

今回は東京を中心に「北岳」と「富士山」にアイコンを載せたいとおもいます。

// 地図を初期化する関数
function initMap() {
  // 地図の初期設定を定義
  const map = new google.maps.Map(document.getElementById('map'), {
    zoom: 5,
    center: { lat: 35.6895, lng: 139.6917 } // 例: 東京を中心にする
  });

  // 訪れた山のデータを配列として定義
  const mountains = [
    { name: '富士山', position: { lat: 35.3606, lng: 138.7274 }, article: 'https://example.com/fuji' },
    { name: '北岳', position: { lat: 35.6639, lng: 138.2383 }, article: 'https://example.com/hokutake' },
    // ...他の山のデータもこのように追加可能
  ];

  // 各山のデータに対して処理を行う
  mountains.forEach((mountain) => {
    // 山の位置にマーカーを設定
    const marker = new google.maps.Marker({
      position: mountain.position,
      map,
      title: mountain.name,
      icon: 'https://yourwebsite.com/wp-content/themes/your-theme/images/mountain_icon.png' // 山のアイコン画像のパス
    });

    // マーカーをクリックした時の動作を設定
    marker.addListener('click', () => {
      window.location.href = mountain.article; // 対応する記事に遷移
    });
  });
}

// ページの読み込みが完了したら、initMap関数を実行して地図を表示
window.addEventListener('load', initMap);

3.画像の配置

/wp-content/themes/your-theme/images/’ディレクトリに山のアイコン画像をアップデートします。

アイコンのファイル名は”mountaion_icon.png”とします。

3. functions.phpの編集

自身のテーマの’functions.php’に以下のコードを追加してください。

function add_custom_map_scripts() {
    // Google Mapsのスクリプトを追加
    wp_enqueue_script('google-maps', 'https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY', array(), null, true);
    // カスタムの地図のスクリプトを追加
    wp_enqueue_script('custom-map', get_template_directory_uri() . '/js/custom-map.js', array('google-maps'), '1.0.0', true);
}
add_action('wp_enqueue_scripts', 'add_custom_map_scripts');

// ショートコードの関数
function custom_map_shortcode() {
    return '<div id="map" style="height: 400px; width: 100%;"></div>';
}
add_shortcode('custom_map', 'custom_map_shortcode');

3行目の「YOUR_API_KEY」のところにはじめに取得した、APIキーをいれることを忘れないでください。

5. 記事に書いてみる

最後にWordPressを開いて、記事を書きます。

[custom_map]と入力するとして、プレビューで確認してみてください。富士山あたりにマップを動かすと、指定したアイコンが表示されていると思います。

こんな感じで地図にアイコンを載せることができました。

今後はこのアイコンを記事とリンクさせて、アイコンをクリックすると、記事に飛ぶという仕様にしたいと思います。

参考になれば、幸いです。

ここまで読んでいただきありがとうございました。

スクールの紹介

最後に宣伝をさせてください。

夢見るAIエンジニアへ、今こそ一歩を踏み出せ!

最近、AI技術やデータサイエンスに興味を持ち始めたあなた。将来、AIエンジニアやデータサイエンティストとして活躍したいと考えているかもしれません。また、AIを使って業務課題や研究課題を解決したい、あるいは教養としてAIの知識を深めたいと思っている方もいるでしょう。

しかし、学び始めるとなると「どこから手をつけて良いのか分からない」「専門的すぎて理解できない」といった悩みが生じることも。そんなあなたのために、この3ヶ月間集中してAIプログラミングを習得するオンラインコーチングサービスがオススメです!

なぜこのサービスが選ばれるのか?その理由はこちら

  1. 初心者から上級者まで
    完全なプログラミング初心者から研究者まで、幅広い方々に優良なコンテンツが提供されます。
  2. 徹底的な進捗管理
    受講者の進捗をしっかりとチェックし、つまずきやすいポイントでのフォローが万全です。
  3. 専属メンターによる徹底サポート
    AIの学び方から、実際の適用まで、専属のメンターが手厚くサポートします。
  4. 場所を選ばず学べるオンライン完結
    東京以外の地域からも、気軽に学び始めることができます。

信頼の実績多数!
・日本最大級のプログラミングスクール実績
・受講者総数700名以上
・SaaS型学習サービス会員65,000名以上
・企業導入実績120社以上
・グッドデザイン賞受賞
・著名な賞受賞歴や経団連加盟も実現

夢を叶えるための第一歩を、一緒に踏み出しませんか?今なら、あなたもその一員として学び始めることができます!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次