WordPress タクソノミーのタームを一覧取得して表示する 投稿/親/子/孫

WordPressでタームの情報を取得する関数get_terms()を使うとタームの一覧表示が実現できます。投稿のタームを表示する場合はget_the_termsを使用します。

タームで表示できる情報一覧を見たい方はターム情報を取得して表示するを参照してください。

すべてのターム表示する

タクソノミーのタームをリンク付きで名前とスラッグを表示します。

<?php
$tax_name = 'taxnomy_name'; //タクソノミーを指定
$terms = get_terms($tax_name);
?>
<ul>
<?php foreach($terms as $term): ?>
<li><a href="<?php echo get_term_link($term->slug, $tax_name) ?>"><?php echo $term->name ?></a></li>
<?php endforeach; ?>
</ul>

親タームのみを表示

タクソノミーの親タームをリンク付きで名前とスラッグを表示します。

<?php
$tax_name = 'food'; //タクソノミーを指定
$terms = get_terms( $tax_name, array('parent' => 0));
?>
<ul>
<?php foreach($terms as $term): ?>
<?php if($term->parent == 0): ?>
<li><a href="<?php echo get_term_link($term->slug, $tax_name) ?>"><?php echo $term->name ?> (<?php echo $term->slug ?>)</a></li>
<?php endif; ?>
<?php endforeach; ?>
</ul>

タームが持っているparentを使用します。

parentは親タームがあると親タームのIDが格納されます。
親タームがない時は0が格納されます。
これを利用して、parent0の場合にターム情報を表示させることで親タームのみを表示することができます。

親子孫タームを表示

タクソノミーの親子孫タームをリンク付きで名前とスラッグを表示します。

wp_list_categoriesを使用するのがシンプルです。
taxonomy_nameを対象のタクソノミースラッグに変更してください。

<?php wp_list_categories('taxonomy=taxonomy_name&hierarchical=1&title_li='); ?>

投稿のタームをすべて表示する

投稿のターム表示はget_the_termsを使用する。

<?php
$tax_name = 'taxonomy_slug'; //タクソノミースラッグを指定
$terms = get_the_terms($post->ID, $tax_name);
?>
<ul>
<?php foreach($terms as $term): ?>
<li><a href="<?php echo get_term_link($term->slug, $tax_name) ?>"><?php echo $term->name ?> (<?php echo $term->slug ?>)</a></li>
<?php endforeach; ?>
</ul>

投稿のタームを一つだけ表示する

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

Wordpress デザイナーの私的メモ帳

設計編

基本

投稿関連

固定ページ関連

カテゴリー関連

タクソノミー、ターム関連

テンプレート作成

Advance Custom Fieldの使い方

プラグイン

その他

MW WP Form

Contact Form 7

事例

  • このエントリーをはてなブックマークに追加

プロフィール

kura

個人開発歴5年以上。サイト開発・運営。 ペアでエンジニアとアプリ開発しています。

このサイトではWEBデザイン初心者向けになるべく分かりやすいように解説したり、WEBデザインの便利ツール紹介、開発したりしています。

note