web-dev-qa-db-ja.com

カスタム分類法の用語の深さを決定する方法

カスタムの階層的分類法の用語のリストを表示するための<select>ドロップダウンを作成しています。各用語の深さを知る方法は?私は、子用語のインデントを追加したいと思います(それらがより深くネストされているほど、より多くのインデントがあるはずです)。

しかし、get_terms()から深さレベルを取得することはできません。深度レベルを整数として取得する方法

1
unfulvio

あなたは wp_dropdown_categories() を使うことができます:

カテゴリのHTMLドロップダウンリストを表示または取得します。

$args = array(
    'show_count'   => 1,
    'hierarchical' => 1,
    'taxonomy'     => 'my_taxonomy',
);

wp_dropdown_categories( $args );
1
Mike Madern
<?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('&nbsp;&nbsp;&nbsp;',$cat->depth).$cat->name.'</option>';
        } 
    ?>
</select>
0
Ann