livedoor天気APIを使用して天気予報を表示する記事を前回(livedoor天気API(PHP)で天気予報を表示するコード)書いたのですが、WordPressのカスタムフィールドを利用して表示したい地域の設定ができるコードを書いてみました。
カスタムフィールドを使用して天気予報を表示する
投稿の下にあるカスタムフィールドに適当な名前(city)を設定して、値に地域IDを入力します。地域のID情報は、 全国の地点定義表(RSS)ページにあります。
カスタムフィールドの値を取得するには、post_custom()を使い、引数にカスタムフィールドで設定した名前を設定します。一応、カスタムフィールドに値を設定しない(していない)場合は、地域IDを設定するようにしています。
あとは、前回の記事にあるコードをそのままになります。
<?php $city = post_custom('city'); if( $city == false ) { $city = 140010; } $base_url = "http://weather.livedoor.com/forecast/webservice/json/v1?city=" . $city; $json = file_get_contents($base_url); $json = mb_convert_encoding($json, 'UTF-8'); $obj = json_decode($json, true); echo '<table border="1" cellspacing="0" cellpadding="5" style="width: 250px;"><tbody><tr><td colspan="3">'; echo $obj['location']['city'] . 'の天気'; echo '</td></tr><tr>'; foreach($obj['forecasts'] as $fc) { echo '<td>'; echo $fc['dateLabel'] . '<br />'; echo $fc['telop'] . '<br />'; echo '<img src="' . $fc['image']['url'] . '"/>'; echo '</td>'; } echo '</tr></tbody></table>'; echo 'copyright <a href="' . $obj['copyright']['image']['link'] . '">' . $obj['copyright']['image']['title'] . '</a>'; ?>
例として下の天気予報画像が、カスタムフィールドを利用した天気予報です。
スポンサーリンク
コメント