【WordPress】カスタム投稿タイプのターム名(カテゴリー名)表示する方法【カスタムタクソノミー】

カスタム投稿タイプのターム名を表示する方法のサムネイル

カスタム投稿タイプのターム名(カテゴリー名)を表示させる方法を紹介します。

目次

PHP記述例

基本構文のPHP記述例を下の載せておきます。基本的にコピペでターム名が表示されるはずです。

<?php
$terms = get_the_terms($post->ID, 'タクソノミーのスラッグ'); //タームオブジェクト配列の関数化
if (!empty($terms)) { // もし$termsが空でなければ(カテゴリーが未設定でなければ)
  foreach ($terms as $term) :
    echo esc_html($term->name); //ターム名(カテゴリ名)を表示
  endforeach;
} else { //もしカテゴリが未設定なら
  echo '未分類'; //未設定と表示
}
?>

コードの意味はコメントアウトを見ていただけば分かると思いますが、要点を下にまとめておきます。

コード解説
  • 使用者が書き換える箇所は’タクソノミーのスラッグカスタム投稿タイプのカテゴリーのスラッグのことで、functions.phpで設定しているはずです。例えば、タクソノミーのスラッグがworks-catなら、’works-cat’と書き換えて下さい。
  • 2行目 get_the_terms($post->ID, ‘タクソノミーのスラッグ’):ターム名を引き出すために get_the_termsを使って配列を関数化している。
  • if文は、記事のターム名が未設定でなければ「ターム名」を表示、未設定であれば「未設定」と表示する条件分岐です。

カスタム投稿アーカイブのループに配置する場合

ループの任意の位置に先程の基本構文を配置するだけ、ターム名を表示できます。装飾を考えると下記のようにクラス属性付きのタグで囲うのが望ましいです。

<!-- 記事一覧-->
<ul class="hoge">
  <?php
  // ページ番号の取得
  $paged = get_query_var('paged') ? get_query_var('paged') : 1;
  $args = array(
    'post_type' => 'works', //カスタム投稿タイプのスラッグ
    'posts_per_page' => -1, //1ページの表示数:全件表示
    'order' => 'ASC', //昇順
    'orderby' => 'date', //日付順
    'paged' => $paged //現在のページ番号(ページネーション用なのでなくてもOK)
  );

  // 以下、ループ構造
  $the_query = new WP_Query($args);
  if ($the_query->have_posts()) : while ($the_query->have_posts()) : $the_query->the_post(); ?>

    <li class="hoge">
      <a href="<?php the_permalink(); ?>" class="hoge">
        <div class="hoge">
          <!-- 投稿日表示 -->
          <div class="hoge"><?php the_title() ?></div>
          <!-- 投稿日表示 -->
          <div class="hoge"><?php the_time('Y年n月j日') ?></div>
          <!-- ターム名表示 -->
          <div class="hoge">
            <?php
            $terms = get_the_terms($post->ID, 'works-cat');
            if (!empty($terms)) {
              foreach ($terms as $term) :
                echo esc_html($term->name);
              endforeach;
            } else {
              echo '未分類';
            }
            ?>
          </div>
          <!-- 抜粋表示 -->
          <div class="hoge"><?php the_excerpt() ?></div>
        </div>
      </a>
    </li>

  <?php endwhile; ?>
  <?php wp_reset_postdata(); ?>
 <?php endif;
 ?>
 </ul>

関連記事

カスタムタクソノミーのfunctions.php設定

あわせて読みたい
【WordPress】カスタム投稿タイプにカテゴリーとタグを追加する方法【カスタムタクソノミー】 カスタム投稿タイプのカスタムタクソノミー(カテゴリーとタグ)はfunctions.phpに設定を記述しないと使うことができません。この記事ではWordPressのカスタム投稿タイ...

カスタム投稿アーカイブの作り方

あわせて読みたい
【WordPress】カスタム投稿タイプのアーカイブの作り方【一覧ページ|archive-$posttype.php】 カスタム投稿タイプ一覧ページの作り方を紹介します。テンプレートファイル、アーカイブのURL、ループ構造のPHP記述例、ページネーションなど。 テンプレートファイル ...

タクソノミーアーカイブの作り方

あわせて読みたい
【WordPress】タクソノミーアーカイブとページネーションの作成【一覧ページ|taxonomy.php|カスタム投... カスタム投稿タイプのアーカイブページのうち、タクソノミー(カテゴリーやタグ)ごとのアーカイブページの作り方とページネーションの設定を紹介します。 テンプレート...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

■清水WEB制作代表
■コーディング:WordPress(オリジナルテーマ制作等)・HTML・Sass・FLOCSS・JavaScript(jQuery)等
■集客力:YouTube/Instagram/ブログでそれぞれ登録者数16000人/フォロワー13000人/月間最大アクセス50000PVの集客実績があります
■文章作成:博士号所有、会社員時代は科学雑誌に寄稿していたので文章作成も得意です
■写真技術:Amazon Kindle出版で、写真集・撮影編集解説書を5冊好評発売中です

目次