今回は記事のタイトルまわりでよく使用される「その記事が所属するターム名を複数表示させる」方法についてです。
目次
リンクなしの場合のコード
早速コードを書いていきます。
<?php // タグ表示 $cp_slug = esc_html(get_post_type_object(get_post_type())->name); if($cp_slug=='post_type'): ?> <div> <?php if ($terms = get_the_terms($post->ID, 'custom-post-taxonomy')) { //タクソノミー名 foreach ( $terms as $term ) { echo '<span>' .$term->name. '</span>'; } } ?> </div> <?php endif; ?>
‘post_type’にはポストタイプ名、’custom-post-taxonomy’にはタクソノミー名を入力します。
実際の表示は下記です。
<div> <span>所属ターム名</span> <span>所属ターム名</span> <span>所属ターム名</span> </div>
複数のタームに所属していても、ちゃんと表示されます。
リンクありの場合のコード
リンクありの場合は、もっと簡単に1行です。
<div> <?php echo get_the_term_list($post->ID, 'custom-post-taxonomy'); ?> </div>
‘custom-post-taxonomy’にはタクソノミー名を入力します。
出力結果は下記です。
<div> <a href="xxx">所属ターム名</a> <a href="xxx">所属ターム名</a> <a href="xxx">所属ターム名</a> </div>
リンクありで、aタグ内にclass名など追加したい場合
<?php // タグ表示 $cp_slug = esc_html(get_post_type_object(get_post_type())->name); if($cp_slug=='post_type'): ?> <div> <?php $terms = get_the_terms($post->ID,'custom-post-taxonomy'); foreach( $terms as $term ): $term_link = get_term_link( $term ); ?> <a href="<?php echo $term_link; ?>" class="className"><?php echo $term->name; ?></a> <?php endforeach; ?> </div> <?php endif; ?>
コメント