【WordPress】投稿に紐づくタームを出力する方法

記事ページやアーカイブページでカスタム投稿を出力する際に、投稿に紐づくタームを一覧で出力する方法をご紹介いたします。

 

このように、投稿に紐づくタームを一覧で出力します。

投稿に紐づくタームを出力する方法(リンクなし)

<ul>
  <?php $terms = get_the_terms($post->ID, 'カスタムタクソノミーのスラッグ'); ?>
  <?php if($terms): ?>
    <?php foreach($terms as $term): ?>
      <?php echo '<li>'.$term->name.'</li>'; ?>
    <?php endforeach; ?>
  <?php endif; ?>
</ul>

投稿に紐づくタームを出力する方法(リンクあり)

<ul>
  <?php $terms = get_the_terms($post->ID, 'カスタムタクソノミーのスラッグ'); ?>
  <?php if($terms): ?>
    <?php foreach($terms as $term): ?>
      <?php echo '<li><a href="'.get_term_link($term->slug,'カスタムタクソノミーのスラッグ').'">'.$term->name.'</a></li>'; ?>
    <?php endforeach; ?>
  <?php endif; ?>
</ul>

 

補足点

1)「get_the_terms」で取得したターム一覧は、<li>タグで出力されるため、外側を<ul>タグで囲んであげてください。

2)if文の書き方は、4種類ほどありますが、基本的には、上記のように閉じカッコを毎回書く方法を採用しております。
(*個人的に後から見やすいことと、この書き方がなんとなくカッコ良いからです。)

3)「<?php if($terms): ?>」での条件分岐は不要ではと思いましたが、タームを付けていない記事の場合、画面が真っ白(エラー)になります。
(*絶対に、何かしらタームをつけるやり方もあるため、その時は不要かと)

投稿に紐づくタームを出力する方法(リンクあり)+カスタムタクソノミーが複数ver

<ul>
  <?php $terms = get_the_terms($post->ID, array('カスタムタクソノミーのスラッグ','カスタムタクソノミーのスラッグ')); ?>
  <?php if($terms): ?>
    <?php foreach($terms as $term): ?>
      <?php echo '<li><a href="'.get_term_link($term->slug,'カスタムタクソノミーのスラッグ').'">'.$term->name.'</a></li>'; ?>
    <?php endforeach; ?>
  <?php endif; ?>
</ul>

 

今回は以上です!

SNSでもご購読できます。

コメントを残す

前の記事

次の記事