カスタムの階層的分類法の用語のリストを表示するための<select>
ドロップダウンを作成しています。各用語の深さを知る方法は?私は、子用語のインデントを追加したいと思います(それらがより深くネストされているほど、より多くのインデントがあるはずです)。
しかし、get_terms()
から深さレベルを取得することはできません。深度レベルを整数として取得する方法
あなたは wp_dropdown_categories() を使うことができます:
カテゴリのHTMLドロップダウンリストを表示または取得します。
$args = array(
'show_count' => 1,
'hierarchical' => 1,
'taxonomy' => 'my_taxonomy',
);
wp_dropdown_categories( $args );
<?php
$args = array(
'taxonomy' => 'category',
'orderby' => 'name',
'order' => 'ASC',
'hierarchical' => true,
'hide_empty' => false,
);
$the_query = new WP_Term_Query($args);
$categories = $the_query->get_terms();
foreach($categories as $cat){
$ancestors = get_ancestors( $cat->term_id, 'category' );
$cat->ancestors = $ancestors; // array( 0 => 15, 1 => 45 ) - 3rd level term
$cat->depth = count( $ancestors ) ;
}
?>
<select>
<?php
foreach($categories as $cat){
echo '<option value="'.$cat->term_id.'">'.str_repeat(' ',$cat->depth).$cat->name.'</option>';
}
?>
</select>