アーカイブページや投稿の単独ページにカスタム分類(タクソノミー)を表示します。
目次
表示中の投稿に属する項目(ターム)を表示
一覧ページ(アーカイブ)や単独ページで表示中の投稿に属する項目(ターム)を表示します。
表示中の投稿に関係なく、登録済みの全ての分類と項目を表示する方法は別の記事でまとめています。
the_terms() でシンプルなHTMLを出力
シンプルなリンク付きHTMLのみを表示したい場合はthe_terms()
を使います。
IDと分類名以外のパラメータはオプションで “項目の前”, “項目の区切り”, “項目の後” の文字列を指定できます。
<ul> <?php the_terms( $post->ID, '分類名', '<li>', "</li>\n<li>", "</li>\n" ); ?> </ul>
get_the_terms() を使うと応用が可能に
get_the_terms()
を使う場合は細かい応用が可能です。
この関数ではパーマリンクが取得できませんので、7行目でget_term_link()
を使って取得しています。
$tax_name = '分類名'; $terms = get_the_terms( $post->ID, $tax_name ); if ( ! empty( $terms ) ) { if ( ! is_wp_error( $terms ) ) { echo "<ul>\n"; foreach ( $terms as $value ) { echo '<li><a href="' . esc_url( get_term_link( $value->slug, $tax_name ) ) . '">' . esc_html( $value->name ) . "</a></li>\n"; } echo "</ul>\n"; } }
参考リンク
WordPress Codex
the_terms() / get_the_terms() / get_term_link()
項目(ターム)のアーカイブページ
使用されるテンプレートファイル
前述の方法で表示した項目名は項目(ターム)の一覧ページへとリンクしています。
項目(ターム)の一覧ページでは下記の優先順でテンプレートが選ばれます。
{taxonomy}や{term}を指定することでより細かく表示を分けることができます。
- taxonomy-{taxonomy}-{term}.php
- taxonomy-{taxonomy}.php
- taxonomy.php
- archive.php
- index.php
表示中の項目名を表示する
アーカイブページで表示中の項目名を表示するにはsingle_term_title()
を使います。
オプションのパラメータで直前のテキスト、表示するかどうかを指定できます。表示しない場合は文字列としてphpで扱うことができます。
<?php // 項目名を表示. single_term_title(); // 表示せずphpで扱う場合. single_term_title( '', false ); ?>
参考リンク
WordPress Codex
single_term_title()