wp_get_post_tags( int $post_id, array $args = array() ): array|WP_Error

Retrieves the tags for a post.

Description

There is only one default for this function, called ‘fields’ and by default is set to ‘all’. There are other defaults that can be overridden in wp_get_object_terms() .

Parameters

$post_idintoptional
The Post ID. Does not default to the ID of the global $post. Default 0.
$argsarrayoptional
Tag query parameters.
See WP_Term_Query::__construct() for supported arguments.

Default:array()

Return

array|WP_Error Array of WP_Term objects on success or empty array if no tags were found.
WP_Error object if 'post_tag' taxonomy doesn’t exist.

Source

function wp_get_post_tags( $post_id = 0, $args = array() ) {
	return wp_get_post_terms( $post_id, 'post_tag', $args );
}

Changelog

VersionDescription
2.3.0Introduced.

User Contributed Notes

  1. Skip to note 4 content

    For a post with tags tag2, tag5 and tag6, the code

    $t = wp_get_post_tags($post->ID);
    print_r($t);

    displays

    Array
    (
       [0] => stdClass Object
           (
               [term_id] => 4
               [name] => tag2
               [slug] => tag2
               [term_group] => 0
               [term_taxonomy_id] => 4
               [taxonomy] => post_tag
               [description] => 
               [parent] => 0
               [count] => 7
           )
    
       [1] => stdClass Object
           (
               [term_id] => 7
               [name] => tag5
               [slug] => tag5
               [term_group] => 0
               [term_taxonomy_id] => 7
               [taxonomy] => post_tag
               [description] => 
               [parent] => 0
               [count] => 6
           )
    
       [2] => stdClass Object
           (
               [term_id] => 16
               [name] => tag6
               [slug] => tag6
               [term_group] => 0
               [term_taxonomy_id] => 16
               [taxonomy] => post_tag
               [description] => 
               [parent] => 0
               [count] => 2
           )
    
    )
  2. Skip to note 6 content

    Display a post specific list of tags,extending this from an example bhlarsen posted on get_tags() . There is probably a better way to do this.

    $tags = wp_get_post_tags($post->ID); //this is the adjustment, all the rest is bhlarsen
    $html = '<div class="post_tags">';
    foreach ( $tags as $tag ) {
    $tag_link = get_tag_link( $tag->term_id );
    
    $html .= "<a href='{$tag_link}' title='{$tag->name} Tag' class='{$tag->slug}'>";
    $html .= "{$tag->name}</a> ";
    }
    $html .= '</div>';
    echo $html;

You must log in before being able to contribute a note or feedback.