私のサイトで似たようなことを試してみたら、最初の例で既に子タームまで全部出ているように見えます。
最初の例を参考に以下のPHPファイルを作って
<?php
require( dirname( __FILE__ ) . './../wp-blog-header.php' );
$taxonomy_name = 'utility-tax';
$taxonomys = get_terms($taxonomy_name);
if(!is_wp_error($taxonomys) && count($taxonomys)):
foreach($taxonomys as $taxonomy):
$tax_posts = get_posts(array('post_type' => get_post_type(), 'taxonomy' => $taxonomy_name, 'term' => $taxonomy->slug ) );
if($tax_posts):
?>
<option value="<?php echo $taxonomy->slug; ?>"><?php echo $taxonomy->name; ?></option>
<?php
endif;
endforeach;
endif;
?>
以下のURLに置きました。
http://meta-scheme.jp/wp/test-php/
上のURLの表示内容と、下のURLの表示内容にある「記事案内 便宜分類別」っていうドロップダウンをよくよく見比べてみると、なんか、子タームまで全部出てる感じですけど。既に最初のコードの段階で。
http://meta-scheme.jp/
タームの並び順については、以下のリファレンスを見る限りでは
Home
orderby引数とorder引数で指定できそうな気はしますが、私自身はまだ試していません。
ただ、以前私がwp_list_categoriesやwp_dropdown_categoriesを使った時、少なくともCategory Order and Taxonomy Terms Orderプラグインを使ってる環境では、orderby引数とorder引数が上手く効いてないように見えたので、もしそのプラグインを使っている環境だと、同じ問題が起こる可能性はあると思いました。
と、上の様に思ってましたが、Category Order and Taxonomy Terms Orderプラグインを使ってる私の環境でも、orderbyがNAME、orderがDESCは、あるていど効いてるみたいでした。
以下のPHPファイルを書いて
<?php
require( dirname( __FILE__ ) . './../wp-blog-header.php' );
echo 'test orderby<br/><br/>';
$taxonomy_name = 'utility-tax';
$taxonomys = get_terms($taxonomy_name, array('orderby'=>'name','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, 'term' => $taxonomy->slug ) );
if($tax_posts):
?>
<option value="<?php echo $taxonomy->slug; ?>"><?php echo $taxonomy->name; ?></option>
<?php
endif;
endforeach;
endif;
?>
以下においたら、先に書いた例と違う並びに変わりました。
http://meta-scheme.jp/wp/test-php/index2.php
とはいえ、この表示結果、名称降順になってるとは考えにくいので、やっぱ、狙ったとおりには並ばないのかも(Category Order and Taxonomy Terms Orderプラグインの入ってない環境が私のサイトにはないのでそっちの環境での動きは試せてないです)。
tg29359さま
さっそくのご返信をありがとうございます!
>私のサイトで似たようなことを試してみたら、最初の例で既に子タームまで全部出ているよう>に見えます。
なんと。。
おっしゃっていただきました内容を咀嚼し、
テストをしたところおっしゃるとおり、子タームが反映されておりました。
うっかりミスだったようです。
すみません。
配列の件ですが、書いていただきましたソースを参考に、
<?php
$taxonomy_name = 'chukai_cat';
$taxonomys = get_terms($taxonomy_name, array('orderby'=>'slug'));
if(!is_wp_error($taxonomys) && count($taxonomys)):
foreach($taxonomys as $taxonomy):
$tax_posts = get_posts(array('post_type' => get_post_type(), 'taxonomy' => $taxonomy_name, 'term' => $taxonomy->slug ) );
if($tax_posts):
?>
<option value="<?php echo $taxonomy->slug; ?>"><?php echo $taxonomy->name; ?></option>
<?php
endif;
endforeach;
endif;
?>
以上のようにしまして、
アナログではありますが、スラッグ名に任意の順番になるように
abcd…をつけたところ、
希望通りの並び順になりました!
ご丁寧にURLまで作成、ご教授いただきありがとうございます!
ご対応感謝いたします。
実現できてよかったです。
ありがとうございます!