Custom Post Type – Same Post Name, Different Post Type

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:

Read More

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


 }

Related posts

Leave a Reply

1 comment

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