テーマカスタマイズ

カスタム投稿タイプで親カテゴリー(ターム)の情報の取得を取得する

2018.06.04

親子

カスタム投稿タイプでカテゴリー(ターム)を使う場合に、子カテゴリー(ターム)から親カテゴリーの情報を取得する方法です。何度かやってますが、都度忘れて都度調べ直してるので備忘録です。

get_the_termsとget_termで情報を引き出す

今回わたしがやりたかったのは下記です。

  • 一覧(タクソノミー)ページで親タームの名称を取得
  • 一覧(タクソノミー)ページで親タームのURLを取得

今回は、まずget_the_termsで親IDを引き出し、それからget_termで取得した親IDから取得する方法を採用しました。

<?php $terms = get_the_terms($post -> ID, 'タクソノミー');
foreach($terms as $term){
   $parent = $term -> parent;
}?>

<?php $term = get_the_terms( $parent,'タクソノミー' ); ?>

<?php
$slug = home_url().$term -> slug;
$name = $term -> name;
?>

<a href="<?php echo $slug; ?>">
<?php echo $name; ?>
</a>

回りくどいようですが、うまくいきました!親カテゴリーにも投稿を登録している場合は親カテゴリーが無い場合を条件分岐で除かないとだめですね。親カテゴリーが無い場合IDが0になります。

<?php if (!0 == $parent): ?>

<?php $term = get_the_terms( $parent,'タクソノミー' ); ?>

<?php
$slug = home_url().$term -> slug;
$name = $term -> name;
?>

<a href="<?php echo $slug; ?>">
<?php echo $name; ?>
</a>

<?php endif; ?>

とりあえずこんな感じで!

WEBSITE DESIGN REQUEST

ホームページ制作依頼について

W・D・Sでホームページ制作をご希望の方はお気軽にご相談ください。
制作内容、ご予算、納期をお知らせいただくとスムーズです。

ホームページ制作を相談する