I have 4 Custom Post Types:

  • Services
  • FAQs
  • Prices
  • Before and After

I want to be able to have the same post names within each of these post types, example:

Skin (example.com/Services/skin)
Cream (example.com/Services/cream)
Body (example.com/Services/body)

Skin (example.com/FAQs/skin)
Cream (example.com/FAQs/cream)
Body (example.com/FAQs/body)

Skin (example.com/Prices/skin)
Cream (example.com/Prices/cream)
Body (example.com/Prices/body)

Before and After
Skin (example.com/before-and-after/skin)
Cream (example.com/before-and-after/cream)
Body (example.com/before-and-after/body)

How can I do this? Right now if I make a new post with the same name as a current one, it adds a "-2" or "-3" to the end of the posts slug:






add_action('init', 'create_post_type_html5'); // Add our HTML5 Blank Custom Post Type
function create_post_type_html5()
  register_taxonomy_for_object_type('category', 'html5-blank'); // Register Taxonomies for Category
register_taxonomy_for_object_type('post_tag', 'html5-blank');
register_post_type('html5-blank', // Register Custom Post Type
    'labels' => array(
        'name' => __('Services', 'html5blank'), // Rename these to suit
        'singular_name' => __('Services', 'html5blank'),
        'add_new' => __('Add New', 'html5blank'),
        'add_new_item' => __('Add New Services', 'html5blank'),
        'edit' => __('Edit', 'html5blank'),
        'edit_item' => __('Edit Services', 'html5blank'),
        'new_item' => __('New Services', 'html5blank'),
        'view' => __('View Services', 'html5blank'),
        'view_item' => __('View Services', 'html5blank'),
        'search_items' => __('Search Services', 'html5blank'),
        'not_found' => __('No Servicess found', 'html5blank'),
        'not_found_in_trash' => __('No Service\'s found in Trash', 'html5blank')
    'rewrite' => array('slug' => 'service','with_front' => true),
    'public' => true,
    'hierarchical' => true, // Allows your posts to behave like Hierarchy Pages
    'has_archive' => true,
    'supports' => array(
    ), // Go to Dashboard Custom HTML5 Blank post for supports
    'can_export' => true, // Allows export in Tools > Export
    'taxonomies' => array(
    ) // Add Category and Post Tags support

  • 1
    I assume you are running that code several times to create your four different types? I just tried this with a couple of post types on a site I maintain, and I can't duplicate the problem. I can add identical post names in the different post type. Possibly this has something to do with your permalink settings?
    – s_ha_dum
    Nov 23 '12 at 21:44
  • Are you trying to enter services/skin as a slug?
    – Steve
    Nov 23 '12 at 22:01
  • I'm having the same problem, it's quite irritating... One thing I did notice about you configuration is that the first parameter you pass to register_post_type isn't actually the name of the post type; just confirming that in your instance it is unique for each post type? Dec 18 '12 at 21:51
  • Also, just to confirm, did you find a solution to this issue? Dec 18 '12 at 21:51

I was experiencing this problem as well; in my case this issue was resolved when a maximum of one post type is to 'hierarchical' => true. The others need to be set to 'hierarchical' => false. After each adjustment I would refresh the permalink settings in Settings > Permalinks.

This and this was the change that enabled the functionality for me; it may not be the only etting that contributed to this issue; I'd be curious to see whether this has effected others...

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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