wordpress get taxonomy list of custom post type

I am using “Video” theme for my wordpress website. In this theme, videos post type and “videoscategory” taxonomy are defined. Here is the register code for taxonomy:

add_action("init", "custom_posttype_menu_wp_admin1");
function custom_posttype_menu_wp_admin1()
{

 register_post_type('videos', 
            array('label' => __('Videos','templatic'),
                    'labels' => array(  'name' => __('Video','templatic'),
                                'singular_name' => __('Video','templatic'),
                                'add_new' => __('Add Video','templatic'),
                                'add_new_item'=> __('Add New Video','templatic'),
                                'edit' => __('Edit','templatic'),
                                'edit_item'=> __('Edit Video','templatic'),
                                'new_item' => __('New Video','templatic'),
                                'view_item' => __('View Video','templatic'),
                                'search_items' => __('Search Videos','templatic'),
                                'not_found' => __('No Videos found','templatic'),
                                'not_found_in_trash'=> __('No Videos found in trash','templatic')   
                               ),
                    'public'            => true,
                    'can_export'        => true,
                    'show_ui'           => true, // UI in admin panel
                    '_builtin'          => false, // It's a custom post type, not built in
                    '_edit_link'        => 'post.php?post=%d',
                    'capability_type'   => 'post',
                    'menu_icon'         => get_bloginfo('template_url').'/images/favicon.ico',
                    'hierarchical'      => false,
                    'rewrite'           => array("slug" => "videos"), // Permalinks
                    'query_var'         => "videos", // This goes to the WP_Query schema
                    'supports'          => array(   'title',
                                                    'author', 
                                                    'excerpt',
                                                    'thumbnail',
                                                    'comments',
                                                    'editor', 
                                                    'trackbacks',
                                                    'custom-fields',
                                                    'revisions') ,
                    'show_in_nav_menus' => true ,
                    'taxonomies'        => array('videoscategory','videostags')
                )
            );
// Register custom taxonomy
register_taxonomy(  "videoscategory", 
            array(  "videos"    ), 
            array ( "hierarchical"=> true, 
                    "label"=> "Category", 
                    'labels'=> array(   'name' => __('Category','templatic'),
                             'singular_name'=> __('Category','templatic'),
                             'search_items'=> __('Search Category','templatic'),
                             'popular_items' => __('Popular Category','templatic'),
                              'all_items'=> __('All Category','templatic'),
                              'parent_item' => __('Parent Category','templatic'),
                              'parent_item_colon' => __('Parent Category:','templatic'),
                              'edit_item' => __('Edit Category','templatic'),
                              'update_item'=> __('Update Category','templatic'),
                              'add_new_item'=> __('Add New Category','templatic'),
                              'new_item_name'=> __('New Make Category','templatic') ), 
                              'public'=> true,
                              'show_ui' => true,
                              'query_var'=> true,
                              "rewrite" => true 
 )
            );

}

I added some categories under videoscategory taxonomy. Now i want to get all the categories that belongs to videoscategory. I googled the whole day, and I use

Read More
$tax_terms =get_terms('videoscategory');

but get empty array. Does anyone know what is the problem? thanks.

Related posts

Leave a Reply

3 comments

  1. Here is use this code, you definitely find your solution

    $cat_args = array(
        'orderby'       => 'term_id', 
        'order'         => 'ASC',
        'hide_empty'    => true, 
    );
    
    $terms = get_terms('videoscategory', $cat_args);
    
        foreach($terms as $taxonomy){
             $term_slug = $taxonomy->slug;
    
        $tax_post_args = array(
              'post_type' => 'videos',
              'posts_per_page' => 999,
              'order' => 'ASC',
              'tax_query' => array(
                    array(
                         'taxonomy' => 'videoscategory',
                         'field' => 'slug',
                         'terms' => '$term_slug'
                    )
               )
        );
    
        $tax_post_qry = new WP_Query($tax_post_args);
    
        if($tax_post_qry->have_posts()) :
             while($tax_post_qry->have_posts()) :
                    $tax_post_qry->the_post();
    
                    the_title();
    
              endwhile;
    
        else :
              echo "No posts";
        endif;
    } //end foreach loop
    
  2. There is an example in the codex when you visit the get_terms page

    $terms = get_terms('videoscategory');
     if ( !empty( $terms ) && !is_wp_error( $terms ) ){
         echo "<ul>";
         foreach ( $terms as $term ) {
           echo "<li>" . $term->name . "</li>";
    
         }
         echo "</ul>";
     }
    

    Just a tip: objects created under a custom taxonomy is called terms, not categories. Please see this post I’ve done on WPSE

  3. Here’s an example for you that I used for a FAQ post type:

    get_header();
    if(have_posts()) {
        $args = array (
            'orderby'    => 'name',
            'order'      => 'ASC',
            'hide_empty' => true,
        );
        $terms = get_terms( 'faq_levels', $args );
        foreach ( $terms as $term ) {
            echo $term->slug;
    
            $post_args = array (
                'post_type'  => 'faq',
                'faq_levels' => $term->name,
            );
            $query = new WP_Query( $post_args );
            while ( $query->have_posts() ) {
                $query->the_post(); ?>
    

    and I created the post type like this:

    function post_type_faqs() {
        register_post_type('faq', array(
            'label'=>'FAQ',
            'menu_icon' => '',
            'labels'=>array(
                'name'=>_x('FAQs', 'post type general name'),
                'singular_name'=>_x('FAQ', 'post type singular name'),
                'add_new'=>_x('Add New', 'faq'),
                'add_new_item'=>__('Add New FAQ'),
                'edit_item'=>__('Edit FAQ'),
                'new_item'=>__('New FAQ'),
                'view_item'=>__('View FAQ'),
                'search_items'=>__('Search FAQs'),
                'not_found'=>__('No faqs found'),
                'not_found_in_trash'=>__('No faqs found in Trash'),
                'parent_item_colon'=>''),
            'public'=>true,
            'publicly_queryable'=>true,
            'show_ui'=>true,
            'query_var'=>true,
            'rewrite'=>false,
            'capability_type'=>'post',
            'supports'=>array('title','thumbnail','post-formats'),
            'taxonomies'=>array('post_tag','faq_category'),
            'slug'=>'faq',
            'hierarchical'=>false,
            'menu_position'=>6,
            'show_in_nav_menus'=> true,
            'has_archive' => true,
            'can_export' => true,
            'register_meta_box_cb' => 'faq_add_meta_boxes'
    
        ));
    }
    add_action('init', 'post_type_faqs');
    
    /**
     * Create Subjects taxonomy
     */
    function faq_category() {
        $labels = array(
            'name'                       => _x( 'Categories', 'Taxonomy General Name', 'dc' ),
            'singular_name'              => _x( 'Category', 'Taxonomy Singular Name', 'dc' ),
            'menu_name'                  => __( 'Categories', 'dc' ),
            'all_items'                  => __( 'All Categories', 'dc' ),
            'parent_item'                => __( 'Parent Category', 'dc' ),
            'parent_item_colon'          => __( 'Parent Category:', 'dc' ),
            'new_item_name'              => __( 'New Category', 'dc' ),
            'add_new_item'               => __( 'Add New Category', 'dc' ),
            'edit_item'                  => __( 'Edit Category', 'dc' ),
            'update_item'                => __( 'Update Category', 'dc' ),
            'separate_items_with_commas' => __( 'Separate categories with commas', 'dc' ),
            'search_items'               => __( 'Search Categories', 'dc' ),
            'add_or_remove_items'        => __( 'Add or remove categories', 'dc' ),
            'choose_from_most_used'      => __( 'Choose from the most used categories', 'dc' ),
            'not_found'                  => __( 'Not Found', 'dc' ),
        );
        $args = array(
            'labels'                     => $labels,
            'hierarchical'               => true,
            'public'                     => true,
            'show_ui'                    => true,
            'show_admin_column'          => true,
            'show_in_nav_menus'          => true,
            'show_tagcloud'              => true,
            'sort_column'                => 'menu_order',
    
        );
        register_taxonomy( 'faq_category', array( 'faq' ), $args );
    }
    add_action( 'init', 'faq_category', 0 );