has_tag( string|int|array $tag = '', int|object $post = null )

Checks if the current post has any of given tags.


The given tags are checked against the post’s tags’ term_ids, names and slugs. Tags given as integers will only be checked against the post’s tags’ term_ids. If no tags are given, determines if post has any tags.

Prior to v2.7 of WordPress, tags given as integers would also be checked against the post’s tags’ names and slugs (in addition to term_ids) Prior to v2.7, this function could only be used in the WordPress Loop. As of 2.7, the function can be used anywhere if it is provided a post ID or post object.

For more information on this and similar theme functions, check out the Conditional Tags article in the Theme Developer Handbook.



(string|int|array) (Optional) The tag name/term_id/slug or array of them to check for.

Default value: ''


(int|object) (Optional) Post to check instead of the current post. (since 2.7.0)

Default value: null


(bool) True if the current post has any of the given tags (or any tag, if no tag specified).


File: wp-includes/category-template.php

function has_tag( $tag = '', $post = null ) {
	return has_term( $tag, 'post_tag', $post );


Version Description
2.6.0 Introduced.

© 2003–2019 WordPress Foundation
Licensed under the GNU GPLv2+ License.