WP_Query::is_category()publicWP 3.1.0

Determines whether the query is for an existing category archive page.

If the $category parameter is specified, this function will additionally check if the query is for one of the categories specified.

Method of the class: WP_Query{}

No Hooks.

Return

true|false. Whether the query is for an existing category archive page.

Usage

global $wp_query;
$wp_query->is_category( $category );
$category(int|string|int[]|string[])
Category ID, name, slug, or array of such to check against.
Default: ''

Changelog

Since 3.1.0 Introduced.

WP_Query::is_category() code WP 6.5.2

public function is_category( $category = '' ) {
	if ( ! $this->is_category ) {
		return false;
	}

	if ( empty( $category ) ) {
		return true;
	}

	$cat_obj = $this->get_queried_object();
	if ( ! $cat_obj ) {
		return false;
	}

	$category = array_map( 'strval', (array) $category );

	if ( in_array( (string) $cat_obj->term_id, $category, true ) ) {
		return true;
	} elseif ( in_array( $cat_obj->name, $category, true ) ) {
		return true;
	} elseif ( in_array( $cat_obj->slug, $category, true ) ) {
		return true;
	}

	return false;
}