情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・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 ); ?>