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.

Parameters

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

Default:''

$postint|WP_Postoptional
Post to check. Defaults to the current post.

Default:null

Return

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

Source

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

Changelog

VersionDescription
3.1.0Introduced.

User Contributed Notes

  1. Skip to note 2 content

    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.