Using WordPress ‘get_the_terms’ PHP function

The get_the_terms() WordPress PHP function retrieves the terms of a specified taxonomy that are attached to a specific post.

Usage

$terms = get_the_terms($post, $taxonomy);
// your custom code here
return $terms;

Parameters

  • $post (int|WP_Post) – Required. The post ID or object.
  • $taxonomy (string) – Required. The taxonomy name.

More information

See WordPress Developer Resources: get_the_terms()

Examples

Get categories of a post

Retrieve the categories associated with a post and display them in a list.

$categories = get_the_terms(get_the_ID(), 'category');
if ($categories) {
    echo '<ul>';
    foreach ($categories as $category) {
        echo '<li>' . $category->name . '</li>';
    }
    echo '</ul>';
}

Get tags of a post

Retrieve the tags associated with a post and display them in a list.

$tags = get_the_terms(get_the_ID(), 'post_tag');
if ($tags) {
    echo '<ul>';
    foreach ($tags as $tag) {
        echo '<li>' . $tag->name . '</li>';
    }
    echo '</ul>';
}

Display custom taxonomy terms for a custom post type

Get the terms of a custom taxonomy called ‘genre’ for a custom post type called ‘book’.

$genres = get_the_terms(get_the_ID(), 'genre');
if ($genres) {
    echo '<ul>';
    foreach ($genres as $genre) {
        echo '<li>' . $genre->name . '</li>';
    }
    echo '</ul>';
}

Retrieve the terms of a taxonomy and display them as links.

$categories = get_the_terms(get_the_ID(), 'category');
if ($categories) {
    echo '<ul>';
    foreach ($categories as $category) {
        $term_link = get_term_link($category);
        echo '<li><a href="' . $term_link . '">' . $category->name . '</a></li>';
    }
    echo '</ul>';
}

Check if a post has a specific term

Check if a post has a specific category (e.g., ‘Featured’).

$categories = get_the_terms(get_the_ID(), 'category');
$has_featured = false;
if ($categories) {
    foreach ($categories as $category) {
        if ($category->name == 'Featured') {
            $has_featured = true;
            break;
        }
    }
}

if ($has_featured) {
    echo 'This post is featured!';
} else {
    echo 'This post is not featured.';
}