【MT】都道府県と市区町村を連動させたセレクトボックスで詳細検索を作る

記事内に広告が含まれています。

Movable Typeで構築しているサイトに、藤本壱さんのSerchEntriesプラグインを使用して詳細検索機能を持たせることにしました。

カテゴリを使った詳細検索を作りたいのですが、カテゴリに都道府県、サブカテゴリに市区町村を使っているので、できるだけ簡単に選択できるプルダウンメニューにしたいのです。

よくある形ですよね。

主なポイントは、

  1. ウェブサイトのインデックスページに、下位ブログのカテゴリ(ここでは都道府県)を引っ張ってきて、並べる。
  2. セレクトボックスで都道府県を選ぶと、もう一方のセレクトが対応した市町村を表示する

ということ。

例によってググりまくり、適当なサンプルを探してみました。
(僕はプログラマーじゃないので、自分でソースが書けません。長時間コードを見ていると蕁麻疹がでますし)

第一候補は、やはり藤本さんのブログに出ていた以下の案。
http://www.h-fj.com/blog/archives/2012/05/15-203805.php

これだと、確かに出来ることはできるのですが、
全国の都道府県×市区町村を吐き出した後に絞込みを行うので、ちょっと現実的ではないな、と。。。

市町村で8000以上のサブカテゴリがあるわけなので(汗)

そこで参考にしたのがこちら。http://ajax.jlamp.net/

手順

  1. 自サイトからサブカテゴリ(市町村レベル)を吐き出す
  2. サブカテゴリのID、をjson形式に変換する
  3. 上記ページを参考に、スクリプトを記述

手順1でサブカテゴリを吐き出す場合。
単純に「テーマのエクスポート」でカテゴリにチェックを入れて吐き出すと、IDが追加されないので、これを使いました。
CSVDataImExporter

必要なデータはカテゴリだけですが、CSVでエクスポートされるので、カテゴリの取り出しはとても簡単に済みます。

といっても、全国の都道府県分、作業するので、それなりに時間がかかります。
途中で「もっと簡単な方法があるのでは・・・??」という疑惑が沸きましたが(汗)、無視です w

理系ですが、手を使うより頭を使うのが面倒になってきた今日この頃・・・歳だろうか(^^;

手順2。
前回の記事でツールを使って一括変換する方法を書いています

カテゴリはたとえば
鹿児島県(1214:kagoshima)–いちき串木野市(1218:ichikikushikino)

という形なので、上のツールで処理するために、一旦テキストエディタで
都道府県,市町村のID,市町村名
というシンプルな形に置換してから使います。

手順3は、ほとんどこちらのページをそのままで再現しました。ありがとうございます m(_ _)m

コメント