Чтобы создать эту структуру, возможно, решение с использованием вспомогательного массива.Это не 100% -ное решение, оно просто даст вам старт, и вы можете пойти отсюда, так как выяснение этого в одиночку будет более полезным.
$all_terms = array();
$taxonomy = 'category';
$parent_args = [
'taxonomy' => $taxonomy,
'parent' => 0,
'hide_empty' => false
];
$parent_terms = get_terms( $parent_args );
foreach ( $parent_terms as $parent_term ) {
$all_terms[ $parent_term->term_id ] = get_all_term_children( $parent_term, $taxonomy );
}
function get_all_term_children( $term, $taxonomy ){
if ( is_wp_error( get_term_children( $term->term_id, $taxonomy ) ) ) {
return;
}
return get_term_children( $term->term_id, $taxonomy );
}