wordpress获得自定义帖子类型的分类列表

问题描述:

我对我的wordpress网站使用“视频”主题。在这个主题中,定义了视频文章类型和“视频类别”分类。这里是分类的注册码:wordpress获得自定义帖子类型的分类列表

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 
) 
      ); 

} 

我在视频分类分类下添加了一些类别。现在我想要获取属于videoscategory的所有类别。我GOOGLE了一整天,我用

$tax_terms =get_terms('videoscategory'); 

但得到空阵列。有谁知道这是什么问题?谢谢。

+0

易于使用得到所有自定义后类型类别:HTTP://wp.m E/p4esuX-3K – 2014-12-31 06:53:16

下面是使用此代码,你一定找到你的解决方案

$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 

有法典的例子,当您访问的页面get_terms

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

    } 
    echo "</ul>"; 
} 

只是一个提示:一个自定义分类下创建的对象被称为条款,不分类。请参阅this post我对WPSE

在这里完成的是给你一个例子,我用了一个常见问题职位类型:

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(); ?> 

和我创建的帖子类型是这样的:

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);