時給単価UP【3大特典付き】
コーディングテクニック集100選⋙

【解説】WordPressの記事に紐づくターム全て表示【リンク付き】

記事内に広告を含みます

パソ君
パソ君

・WordPressの記事に紐づくターム全て表示するには?

こんな疑問にお答えします。

テーマ作成をするとき、その記事がもつターム全て表示したい場合がありますよね。

例えばカード型のレイアウトで、ターム名が横並びに反映してある感じで。

さらにクリックしたら、ターム一覧ページに飛ばしたいはず。

実はそれ簡単に実装可能です。

ジト
ジト

すぐにできるよ!

ということで、この記事では「WordPressの記事に紐づくターム全て表示」について解説していきます!

この記事でわかること

WordPressの記事に紐づくターム全て表示

タクソノミーに対するターム全てを表示したい場合は
下記記事どうぞ↓

【WordPress】タームの名前・リンクを一覧表示する【カレントあり】

【解説】WordPressの記事に紐づくターム全て表示【リンク付き】

記事に紐づくターム全て表示する方法を紹介します。

下記にわけて解説しますね。

  1. 全て:ターム名とリンク表示
  2. 全て:ターム名のみ表示
  3. 最初の1つだけ:ターム名とリンク表示
  4. 最初の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タグの記述をなくせば、ターム名のみ表示が可能です。

最初の1つだけ:ターム名とリンク表示

<?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文を使うことで、タームがあったら表示するようになります。

最初の1つだけ:ターム名表示

<?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]とすることで最初のタームのみ出力可能
ジト
ジト

記事に紐づくタームを表示したい場合は使ってみよう!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA