Get all Term data from database by Term field and data.


get_term_by( string $field, string|int $value, string $taxonomy = '', string $output = OBJECT, string $filter = 'raw' )


Warning: $value is not escaped for ‘name’ $field. You must do it yourself, if required.

The default $field is ‘id’, therefore it is possible to also use null for field, but not recommended that you do so.

If $value does not exist, the return value will be false. If $taxonomy exists and $field and $value combinations exist, the Term will be returned.

This function will always return the first term that matches the $field$value$taxonomy combination specified in the parameters. If your query is likely to match more than one term (as is likely to be the case when $field is ‘name’, for example), consider using get_terms() instead; that way, you will get all matching terms, and can provide your own logic for deciding which one was intended.



(string) (Required) Either 'slug', 'name', 'id' (term_id), or 'term_taxonomy_id'


(string|int) (Required) Search for this term value


(string) (Optional) Taxonomy name. Optional, if $field is 'term_taxonomy_id'.

Default value: ''


(string) (Optional) The required return type. One of OBJECT, ARRAY_A, or ARRAY_N, which correspond to a WP_Term object, an associative array, or a numeric array, respectively.

Default value: OBJECT


(string) (Optional) default is raw or no WordPress defined filter will applied.

Default value: 'raw'


(WP_Term|array|false) WP_Term instance (or array) on success. Will return false if $taxonomy does not exist or $term was not found.


File: wp-includes/taxonomy.php



Version Description
4.4.0 $taxonomy is optional if $field is 'term_taxonomy_id'. Converted to return a WP_Term object if $output is OBJECT.
2.3.0 Introduced.

See alsoSee also

Scroll to Top