###前提・実現したいこと
何卒お力添え頂きたく存じます m(_ _)m
カスタムタクソノミーのタームをセレクトボックスに親子関係を紐付けて表示したい。
勉強中の身ゆえ、様々のサイト様のコードを参考にして作成しておりますが、
表題の通り、タームの親と子を紐付けて表示する方法が解らず行き詰まっております・・・。
■中央線 (親)
○阿波座(中央線) (子)
ライブラリはmaterializeを使用しています。
http://materializecss.com/forms.html#select
当方には技術不足でできませんでしたが、親タームだけを表示し、親タームを選択したら、
子タームのセレクトボックスが出現して選択できる、
といった方法でもかまいません。
他にもこういった方法はどうか?でもかまいません、どうぞ宜しくお願い致します。
言葉足らずで申し訳ございませんが何卒、お知恵お貸し頂ければと思います。
わかりづらい点ございましたらお手数ですがそちらもご指摘くださいませ。
###該当のソースコード
$placenum = $_GET['station']; if($placenum){ $taxquerysp[] = array( 'taxonomy'=>'station', 'terms'=> $placenum, 'field'=>'slug', 'operator'=>'AND' ); } <select name="station" style="margin-top:20px;" id="select" multiple=""> <option value="" selected>全路線</option> <?php $taxonomy_name = 'station'; $taxonomys = get_terms($taxonomy_name,'orderby=count&hide_empty=1&order=DESC'); if(!is_wp_error($taxonomys) && count($taxonomys)): foreach($taxonomys as $taxonomy): $tax_posts = get_posts(array('post_type' => get_post_type(), 'taxonomy' => $taxonomy_name, 'field' => $taxonomy->slug ) ); if($tax_posts): ?> <option value="<?php echo $taxonomy->slug; ?>"><?php echo $taxonomy->name; ?><?php $count = $taxonomy->count; ?>(<?php echo $count ?>)</option> <?php endif; endforeach; endif; ?> </select>
###試したこと
以下などを参考に試行錯誤致しました。
parentを使用する事はわかったのですが、セレクトボックスへのループ出力の為か、うまくいきませんでした。
http://webcake.no003.info/webdesign/get-terms.html
http://tipsbear.com/wordpress-taxonomy-get-terms-listing-in-order-of-parent-child/
https://blog.raizzenet.com/how-to-display-term-list-of-wp-taxonomies/
http://www.rockstream-jp.com/wordpress-term-parent/
wp_list_categoriesや、wp_dropdown_categoriesではセレクトボックスへの対応ができませんでした。
・wp_list_categories → こちらを呼び出すと一覧全てが一括で出力されてしまい個別に<option>でくくることができない為、選択肢をセレクトボックスにできませんでした。
・wp_dropdown_categories → こちらを呼び出すと、現状とほぼ同様のリスト状態にはなりますが、<select>タグが使用できず、multiple(マルチセレクトボックス)に対応できませんでした。
また、親子セット順にはなりますが、画像の理想状態のように段落の付与の仕方が分かりませんでした。親と子でclassの分ける等、細かい操作ができない為、CSSでも段差を作ることができませんでした。
上記の事から、当初のコードに書き加えたほうが、可能かと思い試行錯誤しておりました。
###補足情報(言語/FW/ツール等のバージョンなど)
http://kotori-blog.com/wordpress/refinement_search/#refinement11
こちらのサイトのコードを基盤に作成しております。
カスタムとして、ターム毎のカウント、件数昇順を書き加えています。
フレームワークはMaterializeを使用。
検索ボックスはmultiple=""を追加し、マルチセレクトボックスにしています。
'hierarchical' => true,
階層設定はtrueにしております。
回答1件
あなたの回答
tips
プレビュー