親用語のみを取得するにはどうすればよいですか?


回答:


38

はい、get_termsMichaelが指摘したように、親パラメーターを呼び出し時に渡すだけです。

WP 4.5以降では、これが推奨される使用法です。

$myterms = get_terms( array( 'taxonomy' => 'taxonomy_name', 'parent' => 0 ) );

WP 4.5より前は、これがデフォルトの使用法でした:

$myterms = get_terms( 'taxonomy_name_here', array( 'parent' => 0 ) );

の親値を持つすべての用語0、つまりを返します。トップレベルの用語。


カスタム分類法に対して空の配列を返します:(
Mamaduka

その分類法の用語は、投稿(またはカスタムタイプ)に関連付けられていますか?そうでない場合は、hide_emptyパラメータを渡す必要があり0ます。これも設定して、現在使用されていない用語を表示できるようにします。
t31os

これは、親レベル1である「母親」用語のみを取得することに注意してください。すべての祖先を取得するには、get_ancestors(TERM_ID, TAXONOMY, 'taxonomy') developer.wordpress.org
reference / functions / get_ancestorsを


2

woocommerce電子メールテンプレートの場合は、次を使用します。

$terms = get_the_terms( $_product->id , 'product_cat');
    if($terms) {
        foreach( $terms as $term ) {
            $term = get_term_by("id", $term->parent, "product_cat");
            if ($term->parent > 0) {
                $term = get_term_by("id", $term->parent, "product_cat");
            }
            $cat_obj = get_term($term->term_id, 'product_cat');
            $cat_name = $cat_obj->name;
        }
    }
echo '<br />('. $cat_name . ')';

5
コードで質問を解決する方法について説明を追加してください。OPはwoocommerceメールテンプレートについて質問しませんでした。
iEmanuele

1
 $archive_cats= get_terms( 'archivecat', 'orderby=count&hide_empty=0&parent=0' );

3
これは、2年以上前に提案された(すでに受け入れられている)回答とどう違うのですか?
tfrommen

(すでに受け入れられている)回答に関するコメントを見ましたか?答えが役に立たない場合、なぜ質問がまだ開かれたのですか?!
アシュラフモハメッド

表示されていない用語に関して、元の質問とは無関係の単一のクエリがあり、返信コメントでその問題に対処しました(すでに提供された回答の有効性または正確性に関係がないため)。
t31os 14年

1
編集で対処してください。コードを説明してください。
カイザー14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.