[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です。