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' );