2014-08-29 176 views
4

我對我的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

回答

2

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

$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 
1

有法典的例子,當您訪問的頁面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

0

在這裏完成的是給你一個例子,我用了一個常見問題職位類型:

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); 
相關問題