タクソノミー ターム別 記事一覧  記事件数で全て見る

http://naoyu.net/wordpress/tax_query/583/
ここに感謝

そもそもタクソノミーのタームを全て取得するコードが
あまりメジャーじゃないから悩んだ。
これでカスタムポストの全記事をターム別に一覧表示できる。

【備考】
アーカイブページで表現できるのはポストタイプのみで
タクソノミーページの全記事アーカイブはタクソノミー – タクソノミー名では
そのテンプレートが使われなかった。
つまりそんな表示はできない
/タクソノミー名/ではぺーじがありません。
/タクソノミー名/ラベル名/で一覧が表示されたようにみえたが
タクソノミーphpで表示されただけで ラベル名の部分は適当なもじでも同じように全部でた。
つまりないからタクソノミーページを表示してるだけだ。

つまり
固定ページに書いて表現する。

デフォルトで この表現であったら良いのに。
そのうちなるかな?

タクソノミーのタームを全て取得するコード

$args = array(
'parent'       => 0,
'hierarchical' => 0,
'orderby'      => 'term_order', // Category Order and Taxonomy Terms Order を使用
'order'        => 'ASC'
);
    $taxonomy_name = 'cate_jirei';
    $taxonomys = get_terms($taxonomy_name,$args);
    if(!is_wp_error($taxonomys) && count($taxonomys)):
        foreach($taxonomys as $taxonomy_term):
        $url = get_term_link($taxonomy_term->slug, $taxonomy_name);
?>



<h3><div class="jirei_title"><i class="icon-doc-inv"></i>
<a href="<?php echo $url; ?>">
<?php
echo $taxonomy_term->name;
?>
</a>
</div>
</h3>

<?php endforeach; endif; ?>
 
$taxonomy_name = 'cate_jirei';
$taxonomys = get_terms($taxonomy_name,$args);

これだろう

あとは
フォーチでさらにクエリポストでまわした。





<?php
$args = array(
'parent'       => 0,
'hierarchical' => 0,
'orderby'      => 'term_order', // Category Order and Taxonomy Terms Order を使用
'order'        => 'ASC'
);
    $taxonomy_name = 'cate_jirei';
    $taxonomys = get_terms($taxonomy_name,$args);
    if(!is_wp_error($taxonomys) && count($taxonomys)):
        foreach($taxonomys as $taxonomy_term):
        $url = get_term_link($taxonomy_term->slug, $taxonomy_name);
?>



<h3><div class="jirei_title"><i class="icon-doc-inv"></i>
<a href="<?php echo $url; ?>">
<?php
echo $taxonomy_term->name;
?>
</a>
</div>
</h3>










<!----------------------BOX ALL----------------------------->

<div class="jirei_box_all">
<?php
$args = array(
		'posts_per_page' => -1,
//'orderby' => 'menu_order',
//'order' => 'ASC',
'tax_query' => array(
			'relation' => 'AND',
			array(
				'taxonomy' => $taxonomy_name,
				'field' => 'slug',
				'terms' => array( $taxonomy_term->slug ),
//'operator'=>'NOT IN'
				),
),
//カテ例 'cat'=> 4,
//カテ複数例	'cat'=> array(4,6)

	);
?>

<!----/宣言----->
<!----宣言2----->
<?php
	query_posts( $args );
?>


<!--★★★ループ基本-->
<?php
if ( have_posts () ) :
    while ( have_posts() ) :
        the_post();
?>



<div class="jirei_box">



<div class="jirei_box_img" style="height:210px;">

<a href="<?php the_permalink(); ?>">
 <?php
$title= get_the_title();
echo wp_get_attachment_image(get_post_meta($post->ID,"jirei_gazou",true),W210,0,array('alt'=>$title,'title'=>$title)); ?>
</a>

<?php //new
$days=30;
$today=date('U'); $entry=get_the_time('U');
$diff1=date('U',($today - $entry))/86400;
if ($days > $diff1) {
echo '<div class="new_icon"><img src="/img/new_icon/rainbow1.gif" width="31" height="12" alt="愛知春日井ホームページ制作NEW記事"></div>';
}
?>

</div>

<h4><div class="jirei_sub_title"><i class="icon-dot-circled"></i>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?>
</a></div></h4>


</div>
<?php
    endwhile;
endif;
?>
<?php wp_reset_query(); ?>


<div style="clear:both"></div>



</div class="jirei_box_all">

<div style="padding-top:30px;"></div>






<!----------------------BOX ALL----------------------------->















 
 
 
 
<?php endforeach; endif; ?>

原文はこうだ

<?php
$args = array(
'parent'       => 0,
'hierarchical' => 0,
'orderby'      => 'term_order', // Category Order and Taxonomy Terms Order を使用
'order'        => 'ASC'
);
    $taxonomy_name = 'item_category';
    $taxonomys = get_terms($taxonomy_name,$args);
    if(!is_wp_error($taxonomys) && count($taxonomys)):
        foreach($taxonomys as $taxonomy):
        $url = get_term_link($taxonomy->slug, $taxonomy_name);
        $tax_posts = get_posts(array(
            'post_type' => get_post_type(),
            'posts_per_page' => 5, // 表示させたい記事数
            'tax_query' => array(
                array(
                    'taxonomy'=>'item_category',
                    'terms'=>array( $taxonomy->slug ), 
                    'field'=>'slug',
                    'include_children'=>true,
                    'operator'=>'IN'
                    ),
                'relation' => 'AND'
                )
            ));
    if($tax_posts):
?>
<h2 id="<?php echo esc_html($taxonomy->slug); ?>" class=""><a href="<?php echo $url; ?>"><?php echo esc_html($taxonomy->name); ?></a></h2>
<ul>
    <?php foreach($tax_posts as $tax_post): ?>
    <li>
        <span class="thumb">
            <a href="<?php echo get_permalink($tax_post->ID); ?>">
            <?php if(has_post_thumbnail($tax_post->ID)) {
                echo get_the_post_thumbnail($tax_post->ID,'post-thumbnail');
             } ?>
            </a>
        </span>
        <span class="title"><?php echo get_the_title($tax_post->ID); ?></span>
    </li>
    <?php endforeach; ?>
</ul>
<?php
        endif;
endforeach;
endif;
?>

さらにタクソノミー シーズンで表現

<?php
$args = array(
'parent'       => 0,
'hierarchical' => 0,
'orderby'      => 'term_order', // Category Order and Taxonomy Terms Order を使用
'order'        => 'ASC'
);
    $taxonomy_name = 'item_category';
    $taxonomys = get_terms($taxonomy_name,$args);
    if(!is_wp_error($taxonomys) && count($taxonomys)):
        foreach($taxonomys as $taxonomy):
        $url = get_term_link($taxonomy->slug, $taxonomy_name);
        $this_term = get_query_var( 'term' );
        $tax_posts = get_posts(array(
            'post_type' => get_post_type(),
            'posts_per_page' => 5, // 表示させたい記事数
            'tax_query' => array(
                array(
                    'taxonomy'=>'item_category',
                    'terms'=>array( $taxonomy->slug ), 
                    'field'=>'slug',
                    'include_children'=>true,
                    'operator'=>'IN'
                    ),
                array(
                    'taxonomy'=>'season',
                    'terms'=>array( $this_term ),
                    'field'=>'slug',
                    'include_children'=>true,
                    'operator'=>'AND'
                    ),
                'relation' => 'AND'
                )
            ));
    if($tax_posts):
?>
<h2 id="<?php echo esc_html($taxonomy->slug); ?>" class=""><a href="<?php echo $url; ?>"><?php echo esc_html($taxonomy->name); ?></a></h2>
<ul>
    <?php foreach($tax_posts as $tax_post): ?>
    <li>
        <span class="thumb">
            <a href="<?php echo get_permalink($tax_post->ID); ?>">
            <?php if(has_post_thumbnail($tax_post->ID)) {
                echo get_the_post_thumbnail($tax_post->ID,'post-thumbnail');
             } ?>
            </a>
        </span>
        <span class="title"><?php echo get_the_title($tax_post->ID); ?></span>
    </li>
    <?php endforeach; ?>
</ul>
<?php
        endif;
endforeach;
endif;
?>

さらにこの記事に書くが
何件以上あった場合には 全て表示を表示したい

まずタームなので

上記コードの

$taxonomys = get_terms($taxonomy_name,$args);
を使い

$count = $taxonomy_term->count;

とし

それで分岐 wp_reset_queryの前

リンク先は

$url = get_term_link($taxonomy_term->slug, $taxonomy_name);

を使いそのままえこー

演算子はここを参照
http://www.tohoho-web.com/js/operator.htm

<?php if($count > 9):
?>

<div style="text-align:right; padding-top:0px; padding-bottom:15px; padding-right:30px;">
   <a href="<?php echo $url; ?>" style="color:#FF3300; font-size:13px;">すべて見る ▶▶</a>
    </div>
    
<?php
endif;
?>

参考

タームIDで記事数取得:
get_term( $chosen_id, 'タクソノミースラッグ' )->count

タームスラッグで記事数取得:
get_term_by( 'slug', 'タームスラッグ', 'タクソノミースラッグ' )->count

参照:codex.wordpress.org
get_term
get_term_by

カテゴリは

get_category($id)->category_count;

これらしい
未検証