Ref:
https://wordpress.stackexchange.com/questions/203951/remove-slug-from-custom-post-type-post-urls
function book_setup_post_type()
{
$args = array(
'public' => true,
'label' => __('Partner', 'textdomain'),
'menu_icon' => 'dashicons-businessman',
'has_archive' => false,
'supports' => array('title', 'thumbnail'),
'rewrite' => array('slug' => '/', 'with_front' => false)
);
register_post_type('partner', $args);
}
add_action('init', 'book_setup_post_type');
function na_remove_slug($post_link, $post, $leavename)
{
if ('partner' != $post->post_type || 'publish' != $post->post_status) {
return $post_link;
}
$post_link = str_replace('/' . $post->post_type . '/', '/', $post_link);
return $post_link;
}
add_filter('post_type_link', 'na_remove_slug', 10, 3);
function na_parse_request($query)
{
if (!$query->is_main_query() || 2 != count($query->query) || !isset($query->query['page'])) {
return;
}
if (!empty($query->query['name'])) {
$query->set('post_type', array('post', 'partner', 'page'));
}
}
add_action('pre_get_posts', 'na_parse_request');