たとえば、次の3つのレベルに分類される分類法があるとしましょう。 A > B > C
。
次に、投稿を作成して「C」という用語に割り当てます。
ここでのケースでは、単一の課題のみが存在します。それは事が起こったイベントです。
投稿のページでは、割り当てられた用語だけでなく、階層パスを出力したいと思います。そのため、投稿が "C"にのみ割り当てられている場合でも、途中でこれらの各用語のアーカイブページへのリンクを含む "A> B> C"を表示したいと思います。
get_the_term_list
はそれをしないでしょう、そして私が一週間非常に悪い検索語を使っていない限り、これは明らかにするのが非常に困難であり、そして私が見つけることができたあらゆる解決策は何らかの方法で壊れています。 (分類学用語のデータベースID値の順序に関する仮定を真剣に要求している人もいます。)
これが私の正確なケースに対処しているように思われる 一例 です。それは……私のインストール環境では何も出力しません。そしてvar_dump($links_string)
は"string(0) "";"
のようなものを生成します( "---"が表示される箇所は2つあり、1つのダッシュにまとめてください)。
私は何かが足りないのですか?
Iしたくないしたくないことに注意してください。
投稿の用語を取得するには get_the_terms
を使用し、次に取得するには get_ancestors
を使用しますその用語の親IDの配列。
$tax = 'category';
$terms = get_the_terms( get_the_ID(), $tax );
if( $terms && ! is_wp_error( $terms ) ){
// check for and output any ancestors
$ancestors = array_reverse(get_ancestors( $terms[0]->term_id, $tax ));
if( $ancestors ){
foreach( $ancestors as $ancestor ){
$parent = get_term( $ancestor, $tax );
if( $parent && ! is_wp_error( $parent ) ){
echo $parent->name;
echo get_term_link( $parent );
}
}
}
// output directly assigned term
echo $terms[0]->name;
echo get_term_link( $terms[0] );
}