2024.07.19
ChatGPTにクラス名を付けてもらってみた
- コーディング
今回は、WordPressの投稿記事に紐付いたタクソノミータームを表示する方法をご紹介します。
ご覧の通り、スピカノートでも表示させています!
訪問ユーザーはもちろん、ブログ管理者としてもタームが表示されているとどんな記事なのか認識しやすいので、表示しておくことをおすすめします!
目次
以下は一般的な記事詳細に使用されるコードです。
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<!--投稿日時-->
<p><?php echo get_post_time('Y.m.d'); ?></p>
<!--タイトル-->
<h1><?php the_title(); ?></h1>
<!--タクソノミーターム表示-->
<?php
$terms = get_the_terms($post->ID, 'news_cat');
if ($terms) :
foreach ($terms as $term) {
echo '<span>' . $term->name . '</span>';
}
endif;
?>
<!--本文->
<?php the_content(); ?>
<?php endwhile; ?>
<?php endif; ?>
上記コードの「タクソノミーターム表示」という箇所が記事に紐付いたカテゴリー一覧を表示するコードです。
それでは、一つ一つ解説します。
<?php
$terms = get_the_terms($post->ID, 'news_cat');
if ($terms) :
foreach ($terms as $term) {
echo '<span>' . $term->name . '</span>';
}
endif;
?>
記事に紐付いたタームを表示するには、「get_the_terms」を使用します。
WordPressのカテゴリー関連のテンプレートタグはかなり多くややこしいのですが、とにかく記事に紐づくカテゴリーを取得するのは「get_the_terms」を使用すると覚えておいてください!
引数にタクソノミーのスラッグを入力します。ここでは「news_cat」 を指定しています。
紐付いたタームを全て表示するために、foreach文でループさせて一つ一つ表示させます。
ターム一覧にそれぞれアーカイブページへのリンクをつけたい場合は、「get_term_link」を使用します。
<?php
$terms = get_the_terms($post->ID, 'news_cat');
if ($terms) :
foreach ($terms as $term) {
echo '<a href="' . get_term_link($term) . '">' . $term->name . '</a>';
}
endif;
?>
リンクをつけるとすぐに同じタクソノミーの記事を見ることができるので便利です!
デザイン上、「タームをたくさん羅列させたくない!」ということもあるでしょう。
そんな時は1つだけ表示させることも可能です。
<?php
$terms = get_the_terms($post->ID, 'news_cat');
if ( $terms ) {
echo $terms[0]->name;
}
?>
foreach文でループさせず、get_the_termsで取得した最初のタームのみ表示させます。
以上、記事に紐づくタクソノミータームを表示させる方法をご紹介しました。
記事に紐付いたタームだけでなく、全てのターム一覧を表示させてサイドバーやナビゲーションを作りたい場合は、「get_terms」を使用します。
ややこしいですね…!
以下記事で詳しく解説していますので気になりましたらぜひご覧ください!
株式会社スピカデザイン
渋谷のWEB制作会社「スピカデザイン」の現役コーダー達が、WEB制作のヒントになるような情報をお届けします。
© 2020 spiqa design