【问题标题】:WP - Categories in custom post typeWP - 自定义帖子类型中的类别
【发布时间】:2014-04-15 11:50:16
【问题描述】:

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

我在单个自定义帖子页面中显示类别列表时遇到问题。 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; 

有什么想法吗?

谢谢!

锡隆

【问题讨论】:

    标签: php wordpress custom-post-type categories


    【解决方案1】:

    当您注册您的帖子类型时,您将其注册到类别post_tagcategory

    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) 的参数中使用了错误的参数(分类法)

    这可能是类别分类不适用于您的帖子类型的原因。

    【讨论】:

      猜你喜欢
      • 2014-07-12
      • 1970-01-01
      • 2018-09-22
      • 2016-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多