Function Reference/get terms
Description
Retrieve the terms in taxonomy or list of taxonomies.
Usage
<?php get_terms( $taxonomies, $args ) ?>
Parameters
- $taxonomies
- (string|array) (required) The taxonomies to retrieve terms from.
- Default: None
- $args
- (string|array) (optional) Change what is returned.
- Default: array
Possible Arguments
- number
- (integer) The maximum number of terms to return. Default is to return them all.
- offset
- (integer) The number by which to offset the terms query.
- orderby
- (string)
- id
- count
- name - Default
- slug
- term_group
- none
- order
- (string)
- hide_empty
- (boolean) Whether to return empty $terms.
- 1 (true) - Default (i.e. Do not show empty terms)
- 0 (false)
- fields
- (string)
- all - returns an array of term objects - Default
- ids - returns an array of integers
- names - returns an array of strings
- count - (3.2+) returns the number of terms found
- slug
- (string) Returns terms whose "slug" matches this value. Default is empty string.
- hierarchical
- (boolean) Whether to include terms that have non-empty descendants (even if 'hide_empty' is set to true).
- 1 (true) - Default
- 0 (false)
- name__like
- (string) Returned terms' names will begin with the value of 'name__like', case-insensitive. Default is empty string.
- pad_counts
- (boolean) If true, count all of the children along with the $terms.
- 1 (true)
- 0 (false) - Default
- get
- (string) Default is nothing . Allow for overwriting 'hide_empty' and 'child_of', which can be done by setting the value to 'all'.
- child_of
- (integer) Get all descendents of this term. Default is 0.
- parent
- (integer) Get direct children of this term (only terms whose explicit parent is this value). If 0 is passed, only top-level terms are returned. Default is an empty string.
- cache_domain
- (string) Version 3.2 and above. The 'cache_domain' argument enables a unique cache key to be produced when the query produced by get_terms() is stored in object cache. For instance, if you are using one of this function's filters to modify the query (such as 'terms_clauses'), setting 'cache_domain' to a unique value will not overwrite the cache for similar queries. Default value is 'core'.
- search
- ("string") - Returned terms' names will contain the value of 'search' case-insensitive. Default is an empty string.
NOTE: Arguments are passed in the format used by wp_parse_args(). e.g.
Return Values
- (mixed)
- Term Row from database. Will return false if $taxonomy does not exist or empty array if $term was not found.
The fields returned are:
- term_id
- name
- slug
- term_group
- term_taxonomy_id
- taxonomy
- description
- parent
- count
Examples
Get all post categories ordered by count.
String syntax:
$categories = get_terms( 'category', 'orderby=count&hide_empty=0' );
Array syntax:
$categories = get_terms( 'category', array(
'orderby' => 'count',
'hide_empty' => 0
) );
Get all the links categories:
$mylinks_categories = get_terms('link_category', 'orderby=count&hide_empty=0');
List all the terms in a custom taxonomy, without a link:
$terms = get_terms("my_taxonomy");
$count = count($terms);
if ( $count > 0 ){
echo "<ul>";
foreach ( $terms as $term ) {
echo "<li>" . $term->name . "</li>";
}
echo "</ul>";
}
List all the terms, with link to term archive, separated by an interpunct (·). (language specific, WPML method):
$args = array( 'taxonomy' => 'my_term' );
$terms = get_terms('my_term', $args);
$count = count($terms); $i=0;
if ($count > 0) {
$cape_list = '<p class="my_term-archive">';
foreach ($terms as $term) {
$i++;
$term_list .= '<a href="/term-base/' . $term->slug . '" title="' . sprintf(__('View all post filed under %s', 'my_localization_domain'), $term->name) . '">' . $term->name . '</a>';
if ($count != $i) $term_list .= ' · '; else $term_list .= '</p>';
}
echo $term_list;
}
Details
You can inject any customizations to the query before it is sent or control the output with filters.
The 'get_terms' filter will be called when the cache has the term and will pass the found term along with the array of $taxonomies and array of $args.
This filter is also called before the array of terms is passed and will pass the array of terms, along with the $taxonomies and $args.
The 'list_terms_exclusions' filter passes the compiled exclusions along with the $args.
Source File
get_terms() is located in wp-includes/taxonomy.php.
Related
Terms:
is_term(),
term_exists(),
get_term(),
get_term_by(),
get_term_children(),
get_terms(),
sanitize term(),
wp_get_object_terms()