WordPressで都道府県別のページをwp_optionのテーブルをつかってなるべく楽につくる方法

WordPressでサイトをつくっているのだが、47都道府県でカテゴリをつくりget_postsである都道府県のカテゴリを指定すると、該当する記事一覧を呼び出すページをつくりたい。その際、都道府県のカテゴリIDを指定することで、関連する情報も同時に得るような仕組み作りを検討している。

具体的には、都道府県別で、

・カテゴリID
・都道府県名
・latlng
・Zoom

というデータ配列をつくり、例えば北海道のカテゴリIDが1だとしてURLにID=1と追加して北海道のページを表示すると、カテゴリIDを1でget_postsすると同時に、北海道という名前が表示され、中心部のlatlngとZoomが設定されGoogleMapが表示されるようにしたい。

当初、WordPressのデータベースの中に都道府県のテーブルをつくり呼び出そうと思っていたのだが、たまたま預かりものを渡す目的でお会いした真木さんに相談したところ、それならばwp_optionsのテーブルに書き込むのが一般的なやり方だと教わった。

いわく、

update_option (‘prefecture’,
array(
1 => array (
‘name’ => “北海道”,
‘latlng’ => “43.008413,141.374474”,
‘catID’ => “20”
),
10 => array (
‘name’ => “東京都”,
‘latlng’ => “35.689614,139.691763”,
‘catID’ => “16”
)
)
);

このようなPHPを走らせることで、wp_optionのテーブルの中の’option_name’に’prefecture’が、’option_value’に上記の2次元配列のデータを格納することができ、あとは、

$prefecture = get_option(‘prefecture’);

echo $prefecture[1][‘name’];
echo $prefecture[1][‘latlng’];

で、IDに対応する情報をえることができる。

なので、私のやりたいことは、

URL?ID=1 として、

$i = $_GET[“ID”];

$prefectureName = $prefecture[$i][‘name’];
$prefectureLatlng = $prefecture[$i][‘latlng’];

とすれば、都道府県ごとに1枚1枚ページをつくることなく目的は達成できそう。

真木さん、ありがとう!