get_term()
Get all Term data from database by Term ID.
The usage of the get_term function is to apply filters to a term object. It is possible to get a term object from the database before applying the filters.
$term ID must be part of $taxonomy, to get from the database. Failure, might be able to be captured by the hooks. Failure would be the same value as $wpdb returns for the get_row method.
There are two hooks, one is specifically for each term, named get_term, and the second is for the taxonomy name, 'term_$taxonomy'. Both hooks gets the term object, and the taxonomy name as parameters. Both hooks are expected to return a term object.
get_term hook - Takes two parameters the term Object and the taxonomy name. Must return term object. Used in get_term() as a catch-all filter for every $term.
get_(taxonomy) hook - Takes two parameters the term Object and the taxonomy name. Must return term object. $taxonomy will be the taxonomy name, so for example, if 'category', it would be get_category the filter name. Useful for custom taxonomies or plugging into default taxonomies.
Hooks from the function
Return
WP_Term|Array|WP_Error|null
. WP_Term instance (or array) on success, depending on the $output value. WP_Error if $taxonomy does not exist. Null for miscellaneous failure.
Usage
get_term( $term, $taxonomy, $output, $filter );
- $term(int|WP_Term|object) (required)
- If integer, term data will be fetched from the database, or from the cache if available. If stdClass object (as in the results of a database query), will apply filters and return a WP_Term object with the $term data. If WP_Term, will return $term.
- $taxonomy(string)
- Taxonomy name that $term is part of.
Default: '' - $output(string)
- 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: OBJECT - $filter(string)
- How to sanitize term fields.
Default: 'raw'
Examples
#1 Let's get the data about the taxonomy element from the database:
$term_id = 65; $taxonomy = 'my_taxonomy'; // Since version 4.4 this parameter is no longer required. $term = get_term( $term_id, $taxonomy ); // Now, the variable contains data about the taxonomy element. // An alternative name for the element can be found here $slug = $term->slug; // Item name $name = $term->name; // And this is how we get a description of an element of the taxonomy $desc = $term->description;
#2 Obtaining a taxonomy element without specifying a taxonomy name
Since version 4.4 it is now possible not to specify the $taxonomy parameter:
$term = get_term( 562 ); print_r( $term ); /* Will withdraw: WP_Term Object ( [term_id] => 562 [name] => Records [slug] => zapisi [term_group] => 0 [term_taxonomy_id] => 582 [taxonomy] => my_taxonomy_name [description] => [parent] => 0 [count] => 1 [filter] => raw ) */
#3 Example of how this function works with cache
get_term() utilizes the WP Object Cache to store previously-fetched term data. This helps avoid subsequent data I/O calls from the database to read term data. For example:
$term = get_term( 1 , 'store' ); echo $term->name; $term = get_term( 1 , 'store' ); echo $term->slug;
This example will only perform a single select query on the database. The second get_term will use the WP Object Cache to fetch the previous term object from memory.
Notes
- See: sanitize_term_field() The $context param lists the available values for get_term_by() $filter param.
Changelog
Since 2.3.0 | Introduced. |
Since 4.4.0 | Converted to return a WP_Term object if $output is OBJECT. The $taxonomy parameter was made optional. |