How to get all taxonomies of a post type?

How can i get taxonomies of a post type?

If I have a post type event and i need to find out the list of taxonomies that are attached to that post type. How do I find them?

Related posts

Leave a Reply

7 comments

  1. Apologies for raising an old post, but I came across this problem while looking for an answer for my use case.

    I wanted to retrieve all available taxonomies for a post type, and also retrieve all available terms per taxonomy.

    Thank you to Nick B for setting me in the right direction with his answer: https://wordpress.stackexchange.com/a/357448/198353

    // get a list of available taxonomies for a post type
    $taxonomies = get_taxonomies(['object_type' => ['your_post_type']]);
    
    $taxonomyTerms = [];
    
    // loop over your taxonomies
    foreach ($taxonomies as $taxonomy)
    {
      // retrieve all available terms, including those not yet used
      $terms    = get_terms(['taxonomy' => $taxonomy, 'hide_empty' => false]);
    
      // make sure $terms is an array, as it can be an int (count) or a WP_Error
      $hasTerms = is_array($terms) && $terms;
    
      if($hasTerms)
      {
        $taxonomyTerms[$taxonomy] = $terms;        
      }
    }
    
  2. Have you tried anything? something like this?

    <?php 
    
    $args=array(
      'object_type' => array('event') 
    ); 
    
    $output = 'names'; // or objects
    $operator = 'and'; // 'and' or 'or'
    $taxonomies=get_taxonomies($args,$output,$operator); 
    if  ($taxonomies) {
      foreach ($taxonomies  as $taxonomy ) {
        echo '<p>'. $taxonomy. '</p>';
      }
    }
    ?>
    
  3. Use get_object_taxonomies (https://developer.wordpress.org/reference/functions/get_object_taxonomies/), which takes either the name of your custom post type or a post object as the parameter:

    $taxonomies = get_object_taxonomies('custom_post_type');
    $taxonomies = get_object_taxonomies($custom_post_object);
    

    get_taxonomies() won’t return any taxonomies that are used by multiple post types (https://core.trac.wordpress.org/ticket/27918).