is_tax( string|string[] $taxonomy = '', int|string|int[]|string[] $term = '' )

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


Description Description

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.

For more information on this and similar theme functions, check out the Conditional Tags article in the Theme Developer Handbook.


Top ↑

Parameters Parameters

$taxonomy

(string|string[]) (Optional) Taxonomy slug or slugs to check against.

Default value: ''

$term

(int|string|int[]|string[]) (Optional) Term ID, name, slug, or array of such to check against.

Default value: ''


Top ↑

Return Return

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


Top ↑

Source Source

File: wp-includes/query.php

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

	if ( ! isset( $wp_query ) ) {
		_doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1.0' );
		return false;
	}

	return $wp_query->is_tax( $taxonomy, $term );
}


Top ↑

Changelog Changelog

Changelog
Version Description
2.5.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

  1. Skip to note 2 content
    Contributed by Jonm511

    How to limit the number of posts that appear in a landing page for a specific taxonomy:

    If you are making a custom archive landing page that is based on a taxonomy and NOT a category or tag you can place the following code in your functions.php file:

    add_action( 'pre_get_posts', function( $query) {
        if ( $query->is_tax( 'NAME_OF_TAXONOMY' ) ) { // Replace with the name of the taxonomy you want to target
            $query->set( 'posts_per_page', 6 ); // change '6' to the number of posts you want to appear
        }
    
    } );
  2. Skip to note 3 content
    Contributed by Codex

    Examples

    is_tax();
    // When any custom taxonomy archive page is being displayed.
    
    is_tax( 'channel' );
    // When the archive page for taxonomy of 'channel' is being displayed.
    
    is_tax( 'channel', 'BBC1' );
    // When the archive page for taxonomy of 'channel' is being displayed
    // and the 'channel' taxonomy term is 'BBC1'.
    
    
  3. Skip to note 4 content
    Contributed by Codex

    Post Formats
    The taxonomy slug for Post Formats differs from the Post Format slug. The register_taxonomy() function appends a post-format- base to the Post Format slug. So, e.g. while the “Aside” Post Format type has a slug of aside, the post_format taxonomy term “Aside” has a slug of post-format-aside.

    // When the archive page for any Post Format term is being displayed.
    is_tax( 'post_format' );
    
    // When the archive page for Post Format type 'aside' is being displayed.
    is_tax( 'post_format', 'post-format-aside' );
    

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