Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

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:

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

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

Prices
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:

BAD:

example.com/services/body

example.com/faqs/body-2

example.com/prices/body-3

example.com/before-and-after/body-4

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
    array(
    '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(
        'title',
        'editor',
        'excerpt',
        'thumbnail'
    ), // Go to Dashboard Custom HTML5 Blank post for supports
    'can_export' => true, // Allows export in Tools > Export
    'taxonomies' => array(
        'post_tag',
        'category'
    ) // Add Category and Post Tags support
));


 }
share|improve this question
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? –  Stephen 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? –  Andrew Odri Dec 18 '12 at 21:51
    
Also, just to confirm, did you find a solution to this issue? –  Andrew Odri Dec 18 '12 at 21:51
add comment

1 Answer

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...

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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