WP_Query::is_tax()publicWP 3.1.0

Determines whether the query is for an existing custom taxonomy archive page.

If the $taxonomy parameter is specified, this function will additionally check if the query is for that specific $taxonomy.

If the $term parameter is specified in addition to the $taxonomy parameter, this function will additionally check if the query is for one of the terms specified.

Method of the class: WP_Query{}

No Hooks.

Return

true|false. Whether the query is for an existing custom taxonomy archive page. True for custom taxonomy archive pages, false for built-in taxonomies (category and tag archives).

Usage

global $wp_query;
$wp_query->is_tax( $taxonomy, $term );
$taxonomy(string|string[])
Taxonomy slug or slugs to check against.
Default: ''
$term(int|string|int[]|string[])
Term ID, name, slug, or array of such to check against.
Default: ''

Notes

  • Global. WP_Taxonomy[]. $wp_taxonomies Registered taxonomies.

Changelog

Since 3.1.0 Introduced.

WP_Query::is_tax() code WP 6.5.2

public function is_tax( $taxonomy = '', $term = '' ) {
	global $wp_taxonomies;

	if ( ! $this->is_tax ) {
		return false;
	}

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

	$queried_object = $this->get_queried_object();
	$tax_array      = array_intersect( array_keys( $wp_taxonomies ), (array) $taxonomy );
	$term_array     = (array) $term;

	// Check that the taxonomy matches.
	if ( ! ( isset( $queried_object->taxonomy ) && count( $tax_array ) && in_array( $queried_object->taxonomy, $tax_array, true ) ) ) {
		return false;
	}

	// Only a taxonomy provided.
	if ( empty( $term ) ) {
		return true;
	}

	return isset( $queried_object->term_id ) &&
		count(
			array_intersect(
				array( $queried_object->term_id, $queried_object->name, $queried_object->slug ),
				$term_array
			)
		);
}