0

I have some custom taxonomy for regions.

Commonly it would look something like this.

USA (parent)
- Arizona (child 1)
- - Phoenix (child 2)

however, there will be cases where it will only be like

USA
- Arizona

or

UK
- Wales

and maybe even just

Japan

In my for loop I get the taxonomy data as $location = get_the_terms( $id, 'listings_region' );

and then in the html/php I can simply write $location[0]->name and then I get the the name of the first object in the array.

I have however noticed that the taxonomy comes back not in the correct hierarchy - instead, alphabetically.

When I echo '<pre>'; print_r($location); echo '</pre>', I get the array and [0] would be Arizona and [1] would be USA.

How can I retrieve it the taxonomy array in the correct order so that ideally [0] is always the parent, [1] is the first child, etc?

Thanks in advance.

0

Got it working,

$location = wp_get_post_terms($id, 'listings_region', array('orderby'=> 'parent'));

| improve this answer | |
0

I basically understand that you want to display all the categories with corresponding child-categories. You can do this by following code:

$terms = get_the_terms($id, 'listings_region');
foreach($terms as $key => $term){
    if($term->parent != 0){
        $terms[$term->parent]->children[] = $term;
        unset($terms[$key]);
    }
}

Not tested own so you need to print it once to get it your way but, need to change approach to access the category and it's child.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.