WP - 自定义帖子类型中的类别

时间:2014-04-15 11:50:16

标签: php wordpress custom-post-type categories

我使用缩略图,标签和......类别注册新闻帖类型

我在单个自定义帖子页面中显示类别列表有问题。 The_category();显示主要帖子类型的类别列表,而不是我的自定义帖子类型。

functions.php

//  Register new custom post category - blog

function blog_post_type() {
    $labels = array(
        'name'               => _x( 'Blog', 'post type general name' ),
        'singular_name'      => _x( 'Blog', 'post type singular name' ),
        'add_new'            => _x( 'Dodaj', 'post' ),
        'add_new_item'       => __( 'Dodaj Post' ),
        'edit_item'          => __( 'Edytuj Post' ),
        'new_item'           => __( 'Nowy Post' ),
        'all_items'          => __( 'Wszystkie Posty' ),
        'view_item'          => __( 'View Post' ),
        'search_items'       => __( 'Szuakj postu' ),
        'not_found'          => __( 'Nie znaleziono' ),
        'not_found_in_trash' => __( 'Nie znaleziono w koszu' ), 
        'parent_item_colon'  => '',
        'menu_name'          => 'Blog'
    );
    $args = array(
        'labels'        => $labels,
        'description'   => 'Wpisy na blogu',
        'public'        => true,
        'menu_position' => 5,
        'supports'      => array( 'title', 'editor', 'thumbnail', 'excerpt', 'comments' ),
        'has_archive'   => true,
        'hierarchical' => true,
        'taxonomies' => array('post_tag', 'category'),
    );
    register_post_type( 'blog', $args );    
}
add_action( 'init', 'blog_post_type' );

function blog_taxonomies() {
    $labels = array(
        'name'              => _x( 'Kategorie', 'taxonomy general name' ),
        'singular_name'     => _x( 'Kategoria', 'taxonomy singular name' ),
        'search_items'      => __( 'Szukaj Kategorii' ),
        'all_items'         => __( 'Wszystkie Kategorie' ),
        'parent_item'       => __( 'Nadrzędna Kategoria' ),
        'parent_item_colon' => __( 'Nadrzędna Kategoria:' ),
        'edit_item'         => __( 'Edytuj Kategorię' ), 
        'update_item'       => __( 'Zaktualizuj Kategorię' ),
        'add_new_item'      => __( 'Dodaj Nową Kategorię' ),
        'new_item_name'     => __( 'Nowa Kategoria' ),
        'menu_name'         => __( 'Kategorie' ),
    );
    $args = array(
        'labels' => $labels,
        'public' => true,
        'hierarchical' => true,
        'taxonomies' => array('category'),
    );
    register_taxonomy( 'blog_category', 'blog', $args );
}
add_action( 'init', 'blog_taxonomies', 0 );

和我的自定义帖子类型循环:

$args = array(
              'post_type' => 'Blog',
              'cat' => $catID,
              'author' => $authorID
              );

          $temp = $wp_query;
          $wp_query= null;
          $wp_query = new WP_Query($args);

if ( $wp_query->have_posts() ) : while ( $wp_query->have_posts() ) : $wp_query->the_post(); 

CONTENT with the_category();

endwhile; 

else: 

endif; 

有什么想法吗?

谢谢!

SILON

1 个答案:

答案 0 :(得分:0)

当您注册帖子类型时,您会将其注册到类别post_tag category

function blog_post_type() {
    // some labels
    $args = array(
        // more args
        'taxonomies' => array('post_tag', 'category'),
    );
    register_post_type( 'blog', $args );    
}

但是稍后,您正在注册名为 blog_category 的分类(请参阅register_taxonomy的第一个参数

function blog_taxonomies() {
    //some labels
    $args = array(
        // more args
        'taxonomies' => array('category'),
    );
    register_taxonomy( 'blog_category', 'blog', $args );
}

最重要的是,你在register_taxonomy调用(Codex documentation)的参数中使用了错误的参数(分类法)

这可能就是为什么类别分类法对您的帖子类型无效。