Doubt on Custom Post Type

1

I made a custom post type for WordPress, but at the time of showing the posts in the category does not work. If I enter the URL example.com/category/mensagem-02/ , nothing appears.

Can anyone help me? The code I used.

// Register Custom Post Type
function custom_post_type_mensagem() {
$labels = array(
    'name'                => _x( 'Mensagens', 'Post Type General Name', 'text_domain' ),
    'singular_name'       => _x( 'Mensagem', 'Post Type Singular Name', 'text_domain' ),
    'menu_name'           => __( 'Mensagem', 'text_domain' ),
    'parent_item_colon'   => __( 'Parent Item:', 'text_domain' ),
    'all_items'           => __( 'Todos os Post', 'text_domain' ),
    'view_item'           => __( 'View Item', 'text_domain' ),
    'add_new_item'        => __( 'Adicionar Novo Item', 'text_domain' ),
    'add_new'             => __( 'Adicionar Novo', 'text_domain' ),
    'edit_item'           => __( 'Edit Item', 'text_domain' ),
    'update_item'         => __( 'Update Item', 'text_domain' ),
    'search_items'        => __( 'Search Item', 'text_domain' ),
    'not_found'           => __( 'Not found', 'text_domain' ),
    'not_found_in_trash'  => __( 'Not found in Trash', 'text_domain' ),
);
$rewrite = array(
    'slug'                => 'mensagem',
    'with_front'          => false,
    'pages'               => true,
    'feeds'               => true,
);
$args = array(
    'label'               => __( 'mensagem', 'text_domain' ),
    'description'         => __( 'Blog de mensagens', 'text_domain' ),
    'labels'              => $labels,
    'supports'            => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'trackbacks', 'revisions', 'custom-fields', 'page-attributes', 'post-formats' ),
    'taxonomies'          => array(  'category', 'post_tag','link_category' ),
    'hierarchical'        => false,
    'public'              => true,
    'show_ui'             => true,
    'show_in_menu'        => true,
    'show_in_nav_menus'   => true,
    'show_in_admin_bar'   => true,
    'menu_position'       => 5,
    'can_export'          => true,
    'has_archive'         => true,
    'exclude_from_search' => false,
    'publicly_queryable'  => true,
    'rewrite'             => $rewrite,
    'capability_type'     => 'page',
);
register_post_type( 'mensagem', $args );

}

// Hook into the 'init' action
add_action( 'init', 'custom_post_type_mensagem', 0 );
    
asked by anonymous 18.04.2014 / 03:16

2 answers

2

I do not think you understand the concept of Custom Post Type - CPT. A CPT is a custom type of post and although it may have its categories categories¹ a CPT is not a category and in its default form you will not have access through the aforementioned URL.

To display the posts of this CPT you created the URL would be www.seusite.com/mensagem and the largest hierarchy file is the archive-message.php. Create this file, go to the Configurações > Links permanentes menu and click save, then access the URL as I said above and if your archive-mensagem.php file is correct, the posts of the CPT message will appear.

1 -The real are called taxonomy, but keep category to facilitate understanding

    
19.04.2014 / 01:49
1

Can do what I wanted by adding this code:

function namespace_add_custom_types( $query ) {
  if( is_category() || is_tag() && empty( $query->query_vars['suppress_filters'] ) ) {
    $query->set( 'post_type', array(
     'post', 'your-custom-post-type-here'
        ));
      return $query;
    }
}
add_filter( 'pre_get_posts', 'namespace_add_custom_types' );
    
19.04.2014 / 22:17