This is from the codex.

<?php get_term_by( $field, $value, $taxonomy, $output, $filter ) ?>

Suppose I have a taxonomy system as follows;

taxonomy: "healthy foods" and it's a hierarchical taxonomy and your hierarchy goes exactly like this;

healthy foods
        red ones
        green ones
        red ones
        green ones

and you use the get_term_by function as follows;

get_term_by("name","red ones","healthy foods")

Do you get the veggies or the fruits?


get_term_by() just returns the first matching term, 'first' meaning some internal order in MySQL.

If having multiple terms with the same name matters in your case, don't rely on get_term_by() alone.

  • Thanks Scribu. I'm glad you are hanging out here. Tell me please, if this site, or the stackoverflow site or the wp-hackers list is a better place to ask wordpress questions... I got myself into a huge wordpress project and I just don't have the proper shoes for it yet. So, I'm gonna need lots of help. – Average Joe Apr 7 '12 at 17:37
  • 1
    @AverageJoe this is absolutely the community for WordPress questions, I constantly am on here learning new things just from questions I read through. You'll figure it out, I'm sure. – David Apr 7 '12 at 17:46

You get the first one WP comes to in the database query. To get both terms that match use:

get_terms( [ 'taxonomy'=>'healthy foods', 'name'=>'red ones', 'hide_empty' => 0 ] )

See: https://developer.wordpress.org/reference/functions/get_terms/

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.