Проще всего заказать из базы конкретные ids в определенном вами порядке, иначе вы вряд ли сможете гарантировать, что записи разных типов придут вам в нужном порядке
$args = [
'post_type' => ['post','service'],
'post__in' => [5,12,2,14,7],
'orderby' => 'post__in',
];
$loop = new WP_Query( $args );
При выводе проверяете тип записи и подключаете нужный шаблон
if ( get_post_type() === 'service' ) {
get_template_part( 'templates/archive/archive-service' );
} else {
get_template_part( 'templates/archive/archive-common' );
}
Если типов записей много, то можно сделать так
$post_type = get_post_type();
if ( file_exists( get_theme_file_path( 'templates/archive/archive-' . $post_type . '.php' ) ) ) {
get_template_part( 'templates/archive/archive-' . $post_type );
} else {
get_template_part( 'templates/archive/archive-common' );
}