if( $my_related_post_ids = get_post_meta($post->ID, 'my_related_posts', true)) :
$related_args = array(
'posts_per_page' => -1, // сколько постов будет указано в админке, столько и выведется
'post__in'=> explode(',', $my_related_post_ids), // в качестве значения нужно будет передать массив
'orderby' => 'post__in' // посты будут сортироваться в том же порядке, в котором они перечислены в админке
);
$misha_query = new WP_Query( $related_args );
// если посты, удовлетворяющие нашим условиям, найдены
if( $misha_query->have_posts() ) :
// запускаем цикл
while( $misha_query->have_posts() ) : $misha_query->the_post();
// в данном случае посты выводятся просто в виде ссылок
echo '' . $misha_query->post->post_title . '';
endwhile;
endif;
// не забудьте про эту функцию, её отсутствие может повлиять на другие циклы на странице
wp_reset_postdata();
endif;
Да волнует вопрос с производительностью. Да есть полезные функции в Yoast, но их можно смело реализовать через function. Но вопрос есть ил какие-то другие подводные камни.
Имел ввиду, по нагрузке на систему. Вложенность не хотел делать, а вот по дублям да, но если использовать одинаковый заголовок. А как влияет ID на seo?