タグに紐づいている記事一覧をショートコードで出す(v4.6.1)

「タグの一覧」ではなく「タグに紐づいている記事一覧」。関連記事一覧ですな。
参考:http://zero.edition.jp/archives/207
ただし、いろいろと動かなかったので、最終的には変えています。
functions.php

function tag_article_list( $atts) {
	extract( shortcode_atts( array(
		'mytag' => '',
	), $atts));
	$mytags = get_term_by('name', $mytag, 'post_tag');
	$mytag_id = $mytags->term_id;
	$args = array(
		'tag_id' => $mytag_id,
		'posts_per_page' => -1,
		'post_type' => 'post',
		'orderby' => 'date',
		'order' => 'DESC'
	);

	if($mytag_id){
	$my_query = new WP_Query($args);

	if($my_query->have_posts() ){
		$html = '';
		$html .= '<dl class="dl_actlist">' . "\n";
		while ($my_query->have_posts() ){
			$my_query->the_post();
			$html .= '<dt>' . esc_html( get_the_date() ) . '</dt>' . "\n";
			$html .= '<dd><a href="' . get_the_permalink() . '">' . get_the_title() . '</a></dd>' . "\n";
		}
		$html .= '</dl>' . "\n";
	}
	wp_reset_postdata();
	return $html;
	}
}
add_shortcode('taglist', 'tag_article_list');

1.ショートコードに記述のタグを読み取る
2.タグ名からタグのIDを引っ張る
3.ループ作成
4.出力
 
参考と変えているのは、複数のタグに非対応にしたこと(実装時にはひとつで十分だったので)、タグIDで引っ張る形にしたこと。あと、get_template_partでループ内を記述するのではなく、$htmlに入れる形にしたこと。
変数に入れてreturnで出力する形にしたのには理由があって、変数での記述でないと、出力がなぜか固定ページの本文よりも上に出力されるので。ショートコードを記述したところに出したいのに、無関係にトップに出されると困る。
ショートコードの呼び出しは[taglist mytag="タグ名"]みたいな形で、タグ名をmytagに入れる形。日本語可。
追記:該当するタグ名がなかった場合、全クエリが表示されたため、タグIDがあった場合のみループさせるように修正。