Удалить slug у нескольких типов записи

add_filter( 'post_type_link', 'remove_post_type_slug', 10, 2 );
add_action( 'pre_get_posts', 'add_post_type_to_get_posts_request' );

// Удаляем префиксы с именами типов записей из URL
function remove_post_type_slug( $post_link, $post ){

	$custom_types = array( 'crypto', 'postex' );

	if ( in_array( $post->post_type, $custom_types ) ) {
		return str_replace( "/$post->post_type/", '/', $post_link );
	}

	return $post_link;
}

// Добавляем типы записей в основной запрос
function add_post_type_to_get_posts_request( $query ){

	if ( is_admin() || ! $query->is_main_query() )
		return;

	if ( ! isset($query->query['page']) || empty($query->query['name']) || count($query->query) != 2 )
		return;

	$query->set( 'post_type', array( 'post', 'page', 'crypto', 'postex' ) );
}