パソ君
・WordPressの記事に紐づくターム全て表示するには?
こんな疑問にお答えします。
テーマ作成をするとき、その記事がもつターム全て表示したい場合がありますよね。
例えばカード型のレイアウトで、ターム名が横並びに反映してある感じで。
さらにクリックしたら、ターム一覧ページに飛ばしたいはず。
実はそれ簡単に実装可能です。
ジト
すぐにできるよ!
ということで、この記事では「WordPressの記事に紐づくターム全て表示」について解説していきます!
この記事でわかること
WordPressの記事に紐づくターム全て表示
タクソノミーに対するターム全てを表示したい場合は
下記記事どうぞ↓
目次
【解説】WordPressの記事に紐づくターム全て表示【リンク付き】
記事に紐づくターム全て表示する方法を紹介します。
下記にわけて解説しますね。
- 全て:ターム名とリンク表示
- 全て:ターム名のみ表示
- 最初の1つだけ:ターム名とリンク表示
- 最初の1つだけ:ターム名表示
順に見ていきましょう!
<?php
$terms = get_the_terms( get_the_ID(), 'work_cat' ); // work_catタクソノミーからタームを取得
if ( $terms && ! is_wp_error( $terms ) ) {
echo '<ul class="term-list">';
foreach ( $terms as $term ) {
?>
<li class="term-list__item">
<a class="term-list__link" href="<?php echo esc_url( get_term_link( $term ) ); ?>">
<?php echo esc_html( $term->name ); ?>
</a>
</li>
<?php
}
echo '</ul>';
}
?>
- get_the_terms( get_the_ID(), ‘work_cat’ );で、
その記事IDがもつworks_catタクソノミーのタームを取得 - $termsという変数にターム全て入れる
- ( $terms && ! is_wp_error( $terms )で、
$termsが空でない場合にのみ、処理を実行する - foreach ( $terms as $term )で、
$terms配列の要素を順番に$term変数に代入しながら、ループ処理を実行 - $termのリンクと名前を出力
使うときは「work_cat」を案件のカスタムタクソノミー名に変更しましょう。
<?php
$terms = get_the_terms( get_the_ID(), 'work_cat' ); // work_catタクソノミーからタームを取得
if ( $terms && ! is_wp_error( $terms ) ) {
echo '<ul class="term-list">';
foreach ( $terms as $term ) {
echo '<li class="term-list__item">' . esc_html( $term->name ) . '</li>';
}
echo '</ul>';
}
?>
echoにてaタグの記述をなくせば、ターム名のみ表示が可能です。
<?php
$terms = get_the_terms( get_the_ID(), 'work_cat' );
if ( $terms ) {
$term_link = get_term_link( $terms[0] );
echo '<a href="' . esc_url( $term_link ) . '">' . esc_html( $terms[0]->name ) . '</a>';
}
?>
「$terms[0]」とすれば、取得したタームの1番最初のみ反映することができます。
if文を使うことで、タームがあったら表示するようになります。
<?php
$terms = get_the_terms( get_the_ID(), 'work_cat' );
if ( $terms ) {
echo esc_html( $terms[0]->name );
}
?>
echoにてaタグの記述をなくせば、ターム名のみ表示が可能です。
【解説】WordPressの記事に紐づくターム全て表示【リンク付き】:まとめ
- get_the_terms( get_the_ID(), ‘タクソノミー名’ );を使ってターム情報取得
- foreachを使ってタームそれぞれをループで処理して出力
- aタグ部分を消せばリンクなしで表示可能
- $terms[0]とすることで最初のタームのみ出力可能
ジト
記事に紐づくタームを表示したい場合は使ってみよう!