指定したカスタム分類のターム一覧を件数指定して表示するショートコード

投稿タイプ、分類名、ターム(スラッグ)を指定して、

[taxlist posttype="xxx" taxname="xxx" term="xxx" num="n"]
function getTaxItems($atts, $content = null) {
  extract(shortcode_atts(array(
    "num" => '16',
		"posttype" => 'post',
    "taxname" => null,
    "term" => null
  ), $atts));
  global $post;
  $oldpost = $post;
	if (empty($term)) {
	$args = array(
    'post_type' => $posttype,
    'posts_per_page' => $num
		);
	} else {
	$args = array(
    'post_type' => $posttype,
    'posts_per_page' => $num,
    	'tax_query' => array( /* カスタム分類 */
            array(
                'taxonomy' => $taxname,
                'field' => 'slug',
                'terms' => $term
            )
        )
    );
	}
	$loop = new WP_Query($args);
   if($loop) {
			$retHtml='<ul class="thumb-list>';
			while ( $loop->have_posts() ) : $loop->the_post();
				$retHtml.='<li>';
				$retHtml .= '<div class="thumb-image">';
				$retHtml .= '<a href="'.get_permalink().'" title="'.the_title("","",false).'">';
				if ( has_post_thumbnail() ) {
					$retHtml.= get_the_post_thumbnail($page->ID,'thumbnail');
				} else {
					$retHtml .= '<i class="fa fa-camera-retro"></i>';
				}
				$retHtml .= '</a></div><div class="thumb-text">';
				$retHtml .= '<div class="nl-date">'.get_the_time('Y/m/d').'</div>';
				$retHtml .= '<h4 class="nl-title"><a href="'.get_permalink().'" title="'.the_title("","",false).'">'.the_title("","",false).'</a></h4>';
				$retHtml .= '<p class="nl-excerpt">'.get_the_excerpt().'</p>';
				$retHtml .= '</div></li>';
			endwhile;
			$retHtml.= '</ul>';
	} else {
		$retHtml = '<p class="tnjunbi">記事がありません。</p>';
	}
  $post = $oldpost;
  return $retHtml;
}
add_shortcode("taxlist", "getTaxItems");

YAMADA

Labrid合同会社代表。 WEB制作全般を担当しています。 得意分野はマークアップ系。 デザインやWordpress等の設置カスタム、各種API導入もやります。