How do you get the ID of the parent term of the current child term assigned to a post. For a custom taxonomy?

Custom taxonomy: "location"


  • Japan
  • USA
  • Mexico


  • New York
  • Austin

Say we are on a post assigned to "Japan" how do I get the ID of the parent called "Countries"? For this case it doesn't matter if it takes the highest parent or just the direct parent.

I found this:

$term_id = 21;

$child_term = get_term( $term_id, 'location' );
$parent_term = get_term( $child_term->parent, 'location' );

But it doesn't work.


1 Answer 1


If you just need IDs, get_ancestors will return an array of parents for any type of object:

$term_id = 21;
$ancestors = get_ancestors( $term_id, 'location' );
  • Will it return more than one parent if the structure is nested deeper? How do I just get the single ID of the parent directly above the child term?
    – coder
    May 20, 2016 at 5:29
  • Check the function name it says "ancestors" which mean all parents. To get immediate parent use $immediate_parent = array_shift($ancestors);
    – Sumit
    May 20, 2016 at 5:49
  • thanks champ, figured they could work that out for themselves, but there you go!
    – Milo
    May 20, 2016 at 6:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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