こんにちは
子タームとは「東京都」「神奈川県」のことですよね(間違えていたらごめんなさい)。
この場合は下記のコードでどうでしょうか。
テンプレート等に
<?php
$child_term = get_term_by( 'name' , '子ターム' , 'area' );
if ( $child_term ) {
$terms = get_the_terms( $post->ID, 'area' );
echo '<ul>';
foreach ( $terms as $term ) {
if ( $term->parent == $child_term->term_id ) {
echo '<li><a href="' . get_term_link( $term->slug, $term->taxonomy ) . '">'. $term->name . '</a></li>';
}
}
echo '</ul>' . "\n";
}
?>
ご回答ありがとうございます!
はい。
子タームは「東京都」「神奈川県」のことです。
投稿記事のカテゴリ(ターム)で神奈川県、関東にチェックを入れると、
神奈川県,関東
と表示されているのですが、
それを、
神奈川県、関東にチェックを入れても
子タームの
神奈川県
だけ表示したいのです。。
お教えいただいたコードでは表示されませんでした。。
結構複雑そうでしたら
新しくカスタムフィールドを設定して県名を入力して表示させようかなとも考えてます。
どうぞよろしくお願いいたします。
おかしいですね。当方で検証してみましたが表示されます・・・。
確認ですが、
$child_term = get_term_by( 'name' , '子ターム' , 'area' );
の ‘子ターム’ は実際の子タームのカテゴリー名(スラッグ名ではない)を設定していますか?
また、’area’ は実際のタクソノミー名を設定していますか?
‘子ターム’ は実際の子タームのカテゴリー名(スラッグ名ではない)を設定していますか?
→こちらがよくわからなかったのですが、「神奈川県」や「東京都」ということでしょうか??
あっ!
関東と入れたら表示できました!
親タームの名前を入れたらいいんですね!
カテゴリーの階層は下記のような階層を想定していましたが違うのかな?
親ターム
関東
子ターム
東京都
神奈川県
もし、
関東
東京都
神奈川県
のような階層の場合(関東がトップ階層の場合を想定)は、下記のコードになります。
<?php
$terms = get_the_terms( $post->ID, 'area' );
echo '<ul>';
foreach ( $terms as $term ) {
if ( $term->parent != 0 ) {
echo '<li><a href="' . get_term_link( $term->slug, $term->taxonomy ) . '">'. $term->name . '</a></li>';
}
}
echo '</ul>';
?>
まさしくそれです!
このコードでできました!!
説明がわかりづらくお手数おかけしました。
私の拙い説明で、読み解いていただきありがとうございましたm_ _m
解決してよかったです(「解決済み」にしてくださいね)
なんか勘違いしてしまいました。素直に読めばそのままでしたね。
(素直じゃなくてごめんなさい)