またまたカスタム投稿がらみで。
カスタム投稿タイプで記事をつくる際、通常のカテゴリーも使用できますが、固有のタクソノミーを作成してタームで分類することが多いと思います。
その際に、タームの文字のみを取得して表示したい場合のメモ。
タームの文字のみ取得する(シングルページ)
<?php
$terms = get_the_terms( $post->ID, 'タクソノミー名' );
if ( $terms && ! is_wp_error( $terms ) ) :
$terms_links = array();
foreach ( $terms as $term ) {
$terms_links[] = $term->name;
}
$on_terms = join( ", ", $terms_links );
?>
// ここにターム名表示
<?php echo $on_terms; ?>
get_the_termsを利用してターム名を取得します。
リンク付きにする
また、リンク付きで表示する場合は、もっと簡単です。
<?php get_the_term_list( $post->ID, 'タクソノミー名' , $before, $sep, $after ); ?>
get_the_term_listという関数が用意されているので、これを利用します。
これで指定のタクソノミー配下のタームを取得して表示します。
第2引数でタクソノミーを指定して、3,4,5引数は装飾関係。
詳細
- 必須$post->ID, 記事IDが入ります。
- 必須‘タクソノミー名’ タクソノミー名が入ります。
- $beforeは分類名の前に入る文字列やタグ。
- $sepはセパレーター。
- $afterは分類名の後に入る文字列や閉じタグを入れます。
タームの文字のみ取得する(アーカイブページ)
アーカイブはさらにシンプルで、
<?php $taxonomy = $wp_query->get_queried_object(); echo esc_html($taxonomy->name); ?>
これでタームの一覧ページではターム名のみ表示できますが、カスタム投稿の一覧ではスラッグが表示されました。
ですので、
<?php
if(is_tax()) {
$taxonomy = get_queried_object();
$termname = $taxonomy->name;
} elseif(is_post_type_archive()) {
$termname = wp_title('');
}
echo esc_html($termname);
?>
私は各ページで分岐してみましたが、もっとシンプルな方法があるかもしれません。

