記事で紹介した場所へのGoogleマップリンクを記事の最後などに追加したい場合、何度も記事本文にリンクのHTMLタグを入力するのは面倒です。「住所」というカスタムフィールドを作成して、Googleマップリンクに変換するPHPスクリプトをテンプレートの中に記述しておけば楽でしょう。
●手順1:カスタムフィールドの作成
カスタムフィールドメニューの「新規追加」をクリックして、「名前」に「住所」と入力して値に住所を入力します。「カスタムフィールドを追加」をクリックすると、その記事の「住所」カスタムフィールドとして追加されます。
※カスタムフィールド入力用のテキストボックスが表示されない場合は、ダッシュボード右上の「表示オプション」をクリックして「カスタムフィールド」をチェックしましょう。
●手順2:カスタムフィールドをリンクに変換するコードの追加
リンクを表示したいテンプレート(例:index.php、single.phpなど)を開き、Googleマップリンクを表示したい場所に次のコードを追加します。
<?php $address = post_custom('住所'); if (!empty($address)) { $address2 = urlencode($address); $zoom = 15; $url = "http://maps.google.co.jp/maps?q={$address2}&z={$zoom}"; echo "<p>【所在地】{$address} <a href=\"{$url}\" target=\"_blank\">[地図]</a></p>"; } ?>
post_customは、「住所」カスタムフィールドの値を取得しています。
「if (!empty($address)」は、「住所」が入力された場合のみに処理するための条件分岐です。
urlencode関数は、文字列をURLで使える値にエンコードしています。
$zoomは、Googleマップのズームレベルです。
$urlにGoogleマップのURLを組み立てて、リンクタグを表示しています。
テンプレートに記述したレイアウトや文言を変更すれば、すぐに記事にも反映されます。毎回GoogleマップリンクのHTMLタグを記事に入力していくと、レイアウトを変更したい場合は、一括変更しなければなりません。「住所」に限りませんが、カスタムフィールドを作成しておいてレイアウト部分はテンプレートの中にPHPスクリプトを記述する形式にすれば、定型項目に関する作業の手間が省けます。