This can be achievable by writing your own custom function. What you need to do is use the get_terms() object to do your query order by terms. When making a custom function, check your specific term id set as a parameter and then according to that remove that term id and add it back.
I have written an example code for you to understand more clearly how can you achieve that. I commented on the code so that you can understand the steps.
function get_term_to_start( $taxonomy = '', $args = [] ) {
$terms = get_terms( $taxonomy, $args );
/*
* Return $terms to as it is if the argument is not set or empty
*/
if ( !isset( $args['term_to_start'] ) || empty( $args['term_to_start'] ) )
return $terms;
/*
* If you have set term_to_start, then continue
* Return $terms as it is if there is a wp error returned or if $terms is empty
*/
if ( is_wp_error( $terms ) || empty( $terms ) )
return $terms;
/*
* At this stage you need to convert the multidimensional objects to a multidimensional array.
* I used json_encode and json_decode. Now you can determine the potion of term_to_start
*/
$terms_array = json_decode( json_encode( $terms ), true );
$start_term_position = array_search( $args['term_to_start'], array_column( $terms_array, 'term_id'));
/*
* Check is $start_term_position if false, in case of failure to find the position of term_to_start
* if false, return $terms as it is
*/
if ( !$start_term_position )
return $terms;
/*
* Get the key value pair for term_to_start, unset it from $terms and reset term_to_start pair at the
*/
$start_term_pair[] = $terms[$start_term_position];
unset( $terms[$start_term_position] );
$new_terms_array = array_merge( (array) $start_term_pair, $terms);
/*
* Finally you can return $new_terms_array as an object
*/
return (object) $new_terms_array;
}
// Use above function to get list of your terms starting by your specific term id
$terms = get_term_to_start('your-taxonomy-name', array(
'term_to_start' => 5,//YOUR SPECIFIC TERM ID. ex: id for prio is 5
));
// Now use the nested foreach loop along with get_posts to return your post list starting by specific term
foreach($terms as $term){
$args = array(
'post_type' => 'partner', // Your Post Type
'tax_query' => array(
array(
'taxonomy' => 'your-taxonomy-name', // Your taxonomy Name. ex: tags
'field' => 'slug',
'terms' => $term->slug
)
),
'numberposts' => -1
);
$posts = get_posts($args);
foreach ($posts as $post){
// do your stuff, posts along with your specific term will print first
}
}