سؤال

I register news post type with thumbnails, tags and... categories

I have problem with display categories list in single custom post page. The_category(); displays categories list from main post type and not from my custom post type.

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

and my custom post type loop:

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

Any ideas?

Thanks!

Silon

هل كانت مفيدة؟

المحلول

When you're registering your post type, you're registering it to the categories post_tag and category.

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

But later on, you are registering a taxonomy called blog_category (see first parameter of register_taxonomy

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

On top of that, you're using a wrong argument (taxonomies) inside the arguments of the register_taxonomy call (Codex documentation)

That's probably why the categories taxonomy doesn't work properly for your post type.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top