Codex

Function Reference/get terms

Contents

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)
  • ASC - Default
  • DESC
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 .= ' &middot; '; 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()

See also index of Function Reference and index of Template Tags.