has_category( string|int|array $category = '', int|WP_Post $post = null ): bool

Checks if the current post has any of given category.


Description

The given categories are checked against the post’s categories’ term_ids, names and slugs.
Categories given as integers will only be checked against the post’s categories’ term_ids.

If no categories are given, determines if post has any categories.


Top ↑

Parameters

$category string|int|array Optional
The category name/term_id/slug, or an array of them to check for.

Default: ''

$post int|WP_Post Optional
Post to check. Defaults to the current post.

Default: null


Top ↑

Return

bool True if the current post has any of the given categories (or any category, if no category specified). False otherwise.


Top ↑

Source

File: wp-includes/category-template.php. View all references

function has_category( $category = '', $post = null ) {
	return has_term( $category, 'category', $post );
}


Top ↑

Changelog

Changelog
Version Description
3.1.0 Introduced.

Top ↑

User Contributed Notes

  1. Skip to note 1 content
    Contributed by Mithun Raval

    The current post has set the categories that time this function will return true.
    if you want to check specific category is set for this post.

    if (has_category('Category_name',$post->ID))

    If you want to use it in The Loop, you don’t need to specify the ID.

    if (has_category('Category_name'))

    Check multiple category:

    if(has_category(array('category_name_1', 'category_name_2')))

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