Remove slug from custom post type

Arun - 11/03/2024 1:12 PM

Files 1

functions.php
php
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');