WordPressには「the_title()」「the_content()」「the_category()」といった、記事のタイトルや記事に紐付けたカテゴリー名を表示する関数などが多くあります。その中でもタクソノミーやタームの表示に関係する関数が多く混乱してしまうことがあるので、タクソノミーやタームの情報を取得する関数をまとめてみました。
▼タクソノミー、タームの情報を取得する代表的な関数
- アーカイブページのループ内やシングルページでよく使う関数
- get_the_terms
- wp_get_post_terms
- wp_get_object_terms
- get_the_term_list
- the_terms
- サイドエリアなどターム一覧を表示させるときによく使う関数
- get_term_by
- get_term
- get_terms
- アーカイブ一覧ページでタクソノミー名やターム名を見出しなどで使いたいときによく使う関数
- get_taxonomy
- single_term_title
get_the_terms
1 2 3 4 5 6 |
<?php $terms = get_the_terms( $post->ID, 'タクソノミー名' ); // 複数のタクソノミー情報を取得したい場合 $terms = get_the_terms( $post->ID, array( 'タクソノミー名1', 'タクソノミー名2' ) ); ?> |
参考URL:関数リファレンス – get_the_terms
wp_get_post_terms
1 2 3 4 |
<?php $args = array('fields'=>'names'); // オプション $terms = wp_get_post_terms( $post->ID, 'タクソノミー名', $args); ?> |
参考URL:関数リファレンス – wp_get_post_terms
wp_get_object_terms
1 2 3 4 5 6 7 |
<?php $terms = wp_get_object_terms( array( 1, 2 ), // ポストID array( 'category', 'post_tag' ), array( 'fields'=>'all_with_object_id' ) ); ?> |
参考URL:関数リファレンス – wp_get_object_terms
get_the_term_list
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php get_the_term_list( $post->ID, 'タクソノミー名', 'リストの最初に表示する文字列', '区切り文字', 'リストの最後に表示する文字'); ?> <?php // 出力例 echo '<ul class="styles">'; echo get_the_term_list( $post->ID, 'styles', '<li>', ',</li><li>', '</li>' ); echo '</ul>'; ?> // 出力結果 <ul class="styles"> <li><a href="person1">Style 1,</a></li> <li><a href="person2">Style 2,</a></li> </ul> |
参考URL:関数リファレンス – get_the_term_list
the_terms
1 2 3 4 5 6 |
<?php the_terms( $post->ID, 'category', 'カテゴリー: ', ' / ' ); // 出力結果 カテゴリー: テレビ / スピーカー / モニター ?> |
参考URL:関数リファレンス – the_terms
get_term_by
1 2 3 4 |
<?php // スラッグが「book」のカテゴリー情報を取得する場合 $cat = get_term_by( 'slug' , 'book' , 'category' ); ?> |
参考URL:関数リファレンス – get_term_by
get_term
1 2 3 |
<?php $cat = get_term( 10, 'category' ); // 第一引数には、オブジェクトIDを指定 ?> |
参考URL:関数リファレンス – get_term
get_terms
1 2 3 4 |
<?php // すべてのカテゴリー情報を取得する場合 $categories = get_terms( 'category', 'get=all' ); ?> |
参考URL:関数リファレンス – get_terms
get_taxonomy
1 2 3 4 5 6 |
<?php $taxonomy = get_taxonomy( 'タクソノミー名' ); // 出力結果(タクソノミーのラベル名を表示する場合) echo esc_html( $taxonomy->singular_label ); ?> |
参考URL:関数リファレンス – get_taxonomy
single_term_title
1 2 3 4 5 6 |
<?php single_term_title(); // 文字列として値を返す場合は$displayにfalseを指定 $term_name = single_term_title( '' , $display = false ); ?> |
参考URL:関数リファレンス – single_term_title
まとめ
「get_the_term_list」や「single_term_title」は比較的多く使われる関数だと思いますが、タクソノミーやタームをもっと柔軟にカスタマイズ表示したいときなど、今回紹介したさまざまな関数を試してみると、目的にぴったりの関数がきっと見つかるはずです。