カテゴリ量にもよると思います。
10×10程度であれば最初に取得させておいてjsでの表示切替のみで対応してしまいます。
この場合はjavascriptでのoption要素の追加、削除だけですのでajax通信は必要ありません
今どきのPC・スマホであれば50×50でも重くなることはないと思いますが(たぶん)
ソースにずらずらと出るのが嫌なのでそこまでになったら
ajaxでその都度、下位カテゴリを取得します。(本当に個人の好き嫌いの話です)
トピック投稿者
aq-n
(@aq-n)
ご回答ありがとうございます。
最終的にカテゴリ量は
5×20×20
程度で三つのセレクトボックスなります。
最初に全部取得する場合は、
wp_list_categories()
を使ってカテゴリ表示する感じでしょうか?
ajaxをもし使う場合、カテゴリをjson形式で書きだしてから
それを読むとかもありなのかなと思っています。まだ試しておりませんが。
http://dogmap.jp/2011/02/15/feed-json/
最初に全部取得するのであれば、取得後に整理する必要がありますがget_terms()を使います。
wp_list_categoriesでもツリー上で取得できるので
置き換えや取得をうまいことカプセル化できればこちらのほうが楽そうではありますが…。
で、私なら2000くらいだとajaxで都度取得という形にしてしまいます。
この辺りは人によって色々な作り方があると思いますのでひとつの方法としてですが
上記と同様にget_termsでparent=>0のものを取得しておいて
jQueryで.on(‘change’)をトリガーに用意したphpにidを送信して
受信したphp側で再びget_termを使い、parentを受信したidで指定した上で
htmlを組み立てて送り返す…という感じになります。
※wafの設定してあるサーバではそのままでは動かないことがあります。
トピック投稿者
aq-n
(@aq-n)
ありがとうございます。
>最初に全部取得するのであれば、取得後に整理する必要がありますがget_terms()を使います。
了解しました。やってみます!
>で、私なら2000くらいだとajaxで都度取得という形にしてしまいます。
なるほど。
少し気になるのは、キーボードで操作した場合、逐次phpを呼び出すと処理的に問題おこらないのかなーと思うところですが、それもカテゴリ量にもよりますよね。
やってみます。
>※wafの設定してあるサーバではそのままでは動かないことがあります。
そうなんですね。初めて知りました。
トピック投稿者
aq-n
(@aq-n)
ご回答ありがとうございました。解決済みにさせていただきます。