情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。
関連記事を表示するのに役に立つタグ、wp_list_pluck、詳しくは後日追記します。とりあえず参照元だけ。http://www.cssigniter.com/ignite/programmatically-get-related-wordpress-posts-easily/
追記
投稿の属しているターム(複数、タクソノミー名はgenre)を取得し、その投稿を除くその他の投稿を5件表示、5件それぞれが属するタームを1つ取得して、その一覧へリンク
<?php $terms = wp_get_object_terms( $post->ID, 'genre' );
$term_list = wp_list_pluck( $terms, 'slug' );
$args = array(
'posts_per_page' => 5,
'post__not_in' => array( $post->ID ),
'tax_query' => array(
array(
'taxonomy' => 'genre',
'field' => 'slug',
'terms' => $term_list
)
)
);
$the_query = new WP_Query( $args );
?>
<?php if ($the_query->have_posts()) : ?>
<ul>
<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> <p><a href="<?php $genres = get_the_terms( $post->ID, 'genre' ); $genre = array_pop($genres); echo get_term_link($genre->term_id, 'genre'); ?>">一覧</a></p></li>
<?php endwhile; ?>
</ul>
<?php endif; wp_reset_query(); ?>
2016/5 追記
ブログの同じカテゴリーからランダムに表示、ニュースリリースの記事は除く
<?php $terms = wp_get_object_terms( $post->ID, 'category' );
$term_list = wp_list_pluck( $terms, 'slug' );
$args = array(
'posts_per_page' => 3,
'post__not_in' => array( $post->ID ),
'orderby' => 'rand',
'tax_query' => array(
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => $term_list
),
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => 'newsrelease',
'operator' => 'NOT IN'
)
)
);
$the_query = new WP_Query( $args );
?>