WP_Query::is_tax() – Is the query for an existing custom taxonomy archive page?

You appear to be a bot. Output may be restricted

Description

Is the query 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.

Usage

$bool = WP_Query::is_tax( $taxonomy, $term );

Parameters

$taxonomy
( string|string[] ) optional – Optional. Taxonomy slug or slugs to check against. Default empty.
$term
( int|string|int[]|string[] ) optional – Optional. Term ID, name, slug, or array of such to check against. Default empty.

Returns

bool 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).

Source

File name: wordpress/wp-includes/class-wp-query.php
Lines:

1 to 33 of 33
  public function is_tax( $taxonomy = '', $term = '' ) {
    global $wp_taxonomies;

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

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

    $queried_object = $this->WP_Query::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
        )
      );
  }
 

 View on GitHub View on Trac