#1 楼
是的,正如Michael指出的那样,只需在调用它时将父参数传递给get_terms
。由于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
的项,即。顶级条款。#2 楼
使用'parent'参数:http://codex.wordpress.org/Function_Reference/get_terms
或
http:// codex .wordpress.org / Function_Reference / get_categories
#3 楼
对于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 . ')';
评论
请添加一些解释,说明您的代码如何解决该问题。 OP并未对woocommerce电子邮件模板提出任何疑问。
– iEmanuele
2013年9月2日14:34在
#4 楼
$archive_cats= get_terms( 'archivecat', 'orderby=count&hide_empty=0&parent=0' );
评论
这与两年多前提出的(已经接受的)答案有何不同?
–tfrommen
13-10-24在8:31
您是否看到(已接受)答案的评论?如果没有更多的答案是没有用的,为什么这个问题仍然存在?
– Ashraf Mohammed
2013年11月12日13:42
对于未显示的术语有一个查询,该查询与原始问题无关,我在答复评论中解决了该问题(因为它与已经提供的答案的有效性或正确性无关)。
– t31os
2014年1月28日13:48
请在修改中解决。解释您的代码。
– kaiser
2014年2月3日在22:19
#5 楼
对于此演示,我们将假定有一个称为“ Books”的分类法。我们可能具有以下层次结构:
Fiction (id: 699)
- This is a Fiction Story.
Non-Fiction
- Title of Non-fiction
Fantasy
- ...
我们想获得分类法的父项“ Books”
/* Get the Parent Taxonomy Term Name by post Id */
function get_parent_term_by_post_id($taxname, $taxid=null){
if(isset($taxid)):
//Get by term Id passed in function
$parent_tax = get_term_by('id', $taxid, $taxname);
return $parent_tax ->name; //use name, slug, or id
else:
//Get by PostId of current page
$terms = wp_get_post_terms( get_the_id(), $taxname);
$tax_parent_id = $terms[0]->parent;
if($tax_parent_id == 0):
$tax_parent_id = $terms[0]->parent; //get the next parent ID
endif;
$parent_tax = get_term_by('id', $tax_parent_id , $taxname);
return $parent_tax ->name; //use name, slug, or id
endif;
}
,然后您就可以像这样在模板上运行:
//enter custom tax name. will grab by post id
echo get_parent_term_name_by_post_id('books'); //returns Fiction
//by term ID
echo get_parent_term_name_by_post_id('books', 699); //returns Fiction
评论
它为自定义分类法返回空数组:(
– Mamaduka
2011年8月2日在13:14
该分类法中的术语是否与帖子(或自定义类型)相关联?如果没有,您将需要传递hide_empty参数,并将其也设置为0,这样您就可以看到当前未使用的术语。
– t31os
2011年8月2日在13:25
请注意,这只会获得父级1,即“母”项。要检索所有祖先,请使用get_ancestors(TERM_ID,TAXONOMY,'分类法')developer.wordpress.org/reference/functions/get_ancestors
–jave.web
17年4月13日在6:07