WordPress

WordPress カスタムタクソノミーのタームをすべて取得したり、単体で取得したり、リンク付きで取得したりする方法

WordPress

カスタムタクソノミーのタームを取得する方法をご紹介します。
ヘッダー、フッター、サイドバーのような共通パーツではカスタムタクソノミーのタームをすべて取得したり、投稿一覧ページや投稿詳細ページでは、投稿に属するタームを取得する方法になります。

カスタムタクソノミーのタームをすべて取得する

カスタムタクソノミーのタームをすべて取得する場合、次の3つの関数のいずれかを使用する方法があります。

  • get_terms
  • get_categories
  • wp_list_categories

投稿されているタームをすべて取得するので、主にヘッダー、フッター、サイドバーなどで使用します。
「タクソノミースラッグ」と記載されている箇所には、登録したカスタムタクソノミーのスラッグを入れてください。

タームの取得

<?php
$terms = get_terms('タクソノミースラッグ');
foreach( $terms as $term ) {
echo '<li>'.$term->name.'</li>';
}
?>

使用関数:【get_terms】

タームの取得(リンク付き)

<?php
$terms = get_terms('タクソノミースラッグ');
foreach ( $terms as $term ){
echo '<li><a href="'.get_term_link($term->slug,'タクソノミースラッグ').'">'.$term->name.'</a></li>';
}
?>

使用関数:【get_terms】

タームの取得(リンク・カウント付き)

<?php
$terms = get_terms('タクソノミースラッグ');
foreach ( $terms as $term ){
echo '<li><a href="'.get_term_link($term->slug,'タクソノミースラッグ').'">'.$term->name.'('. $term->count .')'.'</a></li>';
}
?>

使用関数:【get_terms】

タームの取得(リンク付き)

<?php
$args = array(
'taxonomy' => 'タクソノミースラッグ'
);
$categories = get_categories($args);
foreach($categories as $category) {
echo '<li><a href="'.get_category_link($category->term_id).'">'.$category->name.'</a></li>';
}
?>

使用関数:【get_categories】

タームの取得(リンク・カウント付き)

<?php
$args = array(
'taxonomy' => 'タクソノミースラッグ',
);
$categories = get_categories($args);
foreach( $categories as $category ) {
echo '<li><a href="'.get_category_link($category->term_id).'">'.$category->name.'('.$category->count.')'.'</a></li>';
}
?>

使用関数:【get_categories】

タームの取得(リンク付き)

<ul>
<?php wp_list_categories('title_li=&taxonomy=タクソノミースラッグ'); ?>
</ul>

使用関数:【wp_list_categories】

投稿に属するタームを単体で取得

タームを単体で取得する関数は「get_the_terms」を使用します。
投稿に属するタームを取得するので、主に投稿一覧ページ、投稿詳細ページで使用します。
「タクソノミースラッグ」と記載されている箇所には、登録したカスタムタクソノミーのスラッグを入れてください。

タームの取得

<?php
$term = get_the_terms($post->ID,'タクソノミースラッグ');
echo $term[0]->name;
?>

使用関数:【get_the_terms】

タームの取得(リンク付き)

<?php
$term = get_the_terms($post->ID,'タクソノミースラッグ');
echo '<li><a href="'.get_term_link($term[0]->slug,'タクソノミースラッグ').'">'.$term[0]->name.'</a></li>';
?>

使用関数:【get_the_terms】

投稿に属するタームをすべて取得する

投稿に属するタームをすべて取得する関数は「get_the_terms」を使用します。
タームを単体で取得するコードとの違いは、foreach文を使用して繰り返し投稿に属するタームを取得しているのが特徴です。
「タクソノミースラッグ」と記載されている箇所には、登録したカスタムタクソノミーのスラッグを入れてください。

タームの取得

<?php
$terms = get_the_terms($post->ID,'タクソノミースラッグ');
foreach( $terms as $term ) {
echo $term->name;
}
?>

使用関数:【get_the_terms】

タームの取得(リンク付き)

<?php
$terms = get_the_terms($post->ID,'タクソノミースラッグ');
foreach( $terms as $term ) {
echo '<li><a href="'.get_term_link($term->slug,'タクソノミースラッグ').'">'.$term->name.'</a></li>';
}
?>

使用関数:【get_the_terms】

参考サイト

今回使用した関数を詳しく知りたい方は、以下の公式リファレンスよりご確認ください。

あなたにおすすめの記事