我怎么才能只得到父母条款呢?

时间:2011-08-01 作者:Mamaduka

有没有办法只从自定义分类法或类别中获取父术语?

5 个回复
最合适的回答,由SO网友:t31os 整理而成

是的,只需将父参数传递给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, 即顶级术语。

SO网友:3243

对于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 . \')\';

SO网友:ashraf mohammed
 $archive_cats= get_terms( \'archivecat\', \'orderby=count&hide_empty=0&parent=0\' );
SO网友:samjco

在本演示中,我们假设我们有一个名为;书籍;。我们可能有一个层次结构:

Fiction (id: 699)
 - This is a Fiction Story.
Non-Fiction
 - Title of Non-fiction
Fantasy
  -  ...
我们想得到分类法的父术语;书籍“;当前职位的。

/* 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

结束

相关推荐

WP_SET_OBJECT_Terms()无法设置术语

好了,伙计们,这是一个场景。我正在尝试设置一个函数,该函数将自动将一篇帖子(发布时)复制到另一种帖子类型。因此,一篇常规的博客文章被发布,发布后,它的所有信息都被复制到一个自定义的帖子类型(对于WP电子商务),自动为该博客文章创建一个存储条目。我编写了一个函数,该函数负责提取所有信息,并使用wp\\u insert\\u post()将其插入到新帖子中。这一切都很好,除了一件事。我正在使用wp\\u set\\u object\\u terms()根据博客文章的标记设置新产品的商店类别ID。然而,由于某些