ミギムキ

[WordPress] 投稿に設定されているタームのリンクを一覧表示させたい

カスタム投稿に設定されているタームを、タグのように一覧表示させたいときにサッと使えるサンプルコードをご紹介します。

$terms = get_the_terms($post->ID, 'tax_xxx'); if(is_array($terms)) { foreach($terms as $term) { $term_link = get_term_link($term); echo '<a href="'. $term_link .'">'. $term->name .'</a>'; } }

「get_the_terms」関数で投稿に設定されているタームをすべて取得し、ループで回してaタグを出力しています。

タームが設定されていない記事があると、「get_the_terms」の戻り値が配列ではなく「false」となるため、ループ処理の際に「Warning: Invalid argument supplied for foreach」という警告が表示されてしまいます。
(参考:https://developer.wordpress.org/reference/functions/get_the_terms/
そのため、ループ処理の前に「is_array」で戻り値のチェックを行い、配列が受け取れている場合のみ処理を行っています。

ご質問など受け付けています

記事の中でわかりにくかったところ、もっと知りたかったこと、間違っていることなど、何でもお気軽にご連絡ください。

ご連絡は下記フォームを利用いただくか、ツイッターアカウント@flat8migi宛てでもOKです。