I have a custom post type with custom categories using the following:

add_action( 'init', 'create_post_type' );
function create_post_type() {
    register_post_type( 'products',
            'labels' => array(
                'name' => __( 'Products' ),
                'singular_name' => __( 'Product' )
        'capability_type' => 'post',
        'supports' => array('title','editor','comments'),   
        'public' => true,
        'has_archive' => true,
        'rewrite' => array( 'slug' => 'products' ),

function news_init() {
    // create a new taxonomy
            'label' => __( 'Product Categories' ),
            'sort' => true,
            'hierarchical' => true,
            'args' => array( 'orderby' => 'term_order' ),
            'rewrite' => array( 'slug' => 'products' )
add_action( 'init', 'news_init' );

For some reason I just can't display the posts for specific categories. Can someone point me in the right direction?

I'm trying to goto the url /products/category/monitors for example but it displays a page not found. I've duplicated the archive.php template and renamed it category-monitors.php.

  • custom post type and taxonomy with same slug - products ? try changing one of them
    – Amit Kosti
    Aug 13, 2012 at 13:04
  • @amit Ok thanks, I've changed the taxonomy to products-category so would that make the url /products/products-category/monitors? If so that's giving a page not found as well.
    – Rob
    Aug 13, 2012 at 13:09

1 Answer 1


First check if custom post type + taxonomy archive displaying correct posts by visiting a url structure like this -


If it's working then you can do some custom rewrite rules to show them just like you want.

Here are some recommended answers on WPSE describing same

  • Thanks. It's now loading a page but is displaying ALL the products rather than just the monitors. Is there a way to use a custom template for monitors and another template for other products?
    – Rob
    Aug 13, 2012 at 13:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.