WordPress Custom Taxonomy Tree view

Result:

- taxonomy 1
- taxonomy 2
- - sub-taxonomy 2-1
- - sub-taxonomy 2-2
- taxonomy 3

function custom_taxonomy_tree_walker( $taxonomy, $parent = 0 ) {
    $terms = get_terms( $taxonomy, array( 'parent' => $parent, 'hide_empty' => false ) );
    if( count($terms) > 0 ) {
        $output = '<ul>';
        foreach ($terms as $term) {
            // function calls itself to display child elements, if any
            $output .= '<li><a href="' . get_term_link( $term ) . '">' . $term->name . '</a>' . custom_taxonomy_tree_walker($taxonomy, $term->term_id) . '</li>';
        }
        $output .= '</ul>';    
        return $output;
    }
    return false;
}

// usage
echo custom_taxonomy_tree_walker( 'custom_taxonomy_category' );

Leave a Comment