livedoor天気API(PHP)とカスタムフィールドの利用

livedoor天気APIを使用して天気予報を表示する記事を前回(livedoor天気API(PHP)で天気予報を表示するコード)書いたのですが、WordPressのカスタムフィールドを利用して表示したい地域の設定ができるコードを書いてみました。

カスタムフィールドを使用して天気予報を表示する

投稿の下にあるカスタムフィールドに適当な名前(city)を設定して、値に地域IDを入力します。地域のID情報は、 全国の地点定義表(RSS)ページにあります。

customfield

カスタムフィールドの値を取得するには、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>';
?>

例として下の天気予報画像が、カスタムフィールドを利用した天気予報です。

livedoorWeather2

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です