get_taxonomies( array $args = array(), string $output = 'names', string $operator = 'and' )

Retrieves a list of registered taxonomy names or objects.

Description Description

Parameters Parameters


(array) (Optional) An array of key => value arguments to match against the taxonomy objects.

Default value: array()


(string) (Optional) The type of output to return in the array. Accepts either taxonomy 'names' or 'objects'.

Default value: 'names'


(string) (Optional) The logical operation to perform. Accepts 'and' or 'or'. 'or' means only one element from the array needs to match; 'and' means all elements must match.

Default value: 'and'

Top ↑

Return Return

(string[]|WP_Taxonomy[]) An array of taxonomy names or objects.

Top ↑

Source Source

File: wp-includes/taxonomy.php

function get_taxonomies( $args = array(), $output = 'names', $operator = 'and' ) {
	global $wp_taxonomies;

	$field = ( 'names' === $output ) ? 'name' : false;

	return wp_filter_object_list( $wp_taxonomies, $args, $operator, $field );

Top ↑

Changelog Changelog

Version Description
3.0.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

  1. Skip to note 1 content
    Contributed by Ulrich

    When querying the taxonomies with a specific post type like “posts” in this case, only the taxonomies connected only with this post type will be shown. If a taxonomy is attached to multiple post types it will not be listed. Core Trac Ticket 27918

    $args = array(
    	'name' => array(
    $taxonomies = get_taxonomies( $args );

    The alternative is to use get_object_taxonomies().

  2. Skip to note 2 content
    Contributed by hearvox

    Display a list of only public custom taxonomies — will not list include WordPress built-in taxonomies (e.g., categories and tags):

    $args = array(
      'public'   => true,
      '_builtin' => false
    $output = 'names'; // or objects
    $operator = 'and'; // 'and' or 'or'
    $taxonomies = get_taxonomies( $args, $output, $operator ); 
    if ( $taxonomies ) {
    	echo '<ul>';
    	foreach ( $taxonomies  as $taxonomy ) {
    		echo '<li>' . $taxonomy . '</li>';
    	echo '</ul>';	
  3. Skip to note 4 content
    Contributed by hearvox

    Display the plural name of a specific taxonomy (and setting the output to be 'object' rather than the default 'array‘):

    $args = array(
    	'name' => 'genre'
    $output = 'objects'; // or names
    $taxonomies= get_taxonomies( $args, $output ); 
    if ( $taxonomies ) {
    	foreach ( $taxonomies as $taxonomy ) {
    		echo '<div>' . $taxonomy->labels->name . '</div>';
  4. Skip to note 5 content
    Contributed by samjco

    This can be used in certain use cases as if you need to find the taxonomy from a term slug

                    // We want to find the Taxonomy to this slug.
                    $term_slug = 'myterm';
                    $taxonomies = get_taxonomies();
                    foreach ( $taxonomies as $tax_type_key => $taxonomy ) {
                        // If term object is returned, break out of loop. (Returns false if there's no object)
                        if ( $term_object = get_term_by( 'slug', $term_slug , $taxonomy ) ) {
    				//Get the taxonomy!!
                    echo $term_object->taxonomy . '<br>';
    				// You can also retrieve other thing of the term:
                    echo $term_object->name . '<br>'; //term name
                    echo $term_object->term_id . '<br>'; // term id
                    echo $term_object->description . '<br>'; // term description
    				// See all options by dumping the $term_object:
    				//var_dump( $term_object );

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