Get_Term_Child仅适用于直系子女(不适用于孙辈)

时间:2013-11-25 作者:b0nd

我想显示自定义分类法的术语子级。目前,我可以使用get_term_children, 但是使用这个,它显示孩子和孙子,我想避免这个,并且只显示直系子。

这就是我现在拥有的(但它会输出孩子和孙子):

<?php
$term_id = get_queried_object_id();
$taxonomy_name = \'mytaxname\';

$termchildren = get_term_children( $term_id, $taxonomy_name );

foreach ( $termchildren as $child ) {
    $term = get_term_by( \'id\', $child, $taxonomy_name );
    echo \' <div class="product-archive">\';
        echo \'<div class="post-title">
      <h3 class="product-name"><a href="\' .get_term_link( $term, $taxonomy_name ). \'">\' .$term->name. \'</a></h3>  
    </div>
  </div>\';  }
?>
这就是我努力工作的目的,所以它只显示直系子女:

<?php
$term_id = get_queried_object_id(); 
$taxonomy_name = \'mytaxname\';

$args = array(\'parent\' => $term_id,\'parent\' => $term_id );
$termchildren = get_terms( $taxonomy_name, $args);

foreach ( $termchildren as $child ) {
    $term = get_term_by( \'id\', $child, $taxonomy_name );
    echo \' <div class="product-archive">\';
        echo \'<div class="post-title">
      <h3 class="product-name"><a href="\' .get_term_link( $term, $taxonomy_name ). \'">\' .$term->name. \'</a></h3>  
    </div>
  </div>\';  }
?>
这给了我一个错误:

Catchable fatal error: Object of class WP_Error could not be converted to string in...

我做错了什么?

谢谢

1 个回复
最合适的回答,由SO网友:Charles Clarkson 整理而成

使用get_terms() 改为函数:

$term_children = get_terms(
    \'mytaxname\',
    array(
        \'parent\' => get_queried_object_id(),
    )
);

if ( ! is_wp_error( $terms ) ) {
    foreach ( $term_children as $child ) {
        echo \'
            <div class="product-archive">
                <div class="post-title">
                    <h3 class="product-name"><a href="\' . get_term_link( $child ) . \'">\' . $child->name . \'</a></h3>
                </div>
            </div>
        \';
    }
}
get_terms() 可以返回WP\\u错误对象,因此您需要检查它是否返回。它返回一个术语对象数组,因此您不再需要使用get_term_by(). 自从$child 是一个术语对象,get_term_link() 不需要第二个参数。get_terms() 第二个参数有更多选项。你应该看看。

结束

相关推荐

GET_POST_TERMS未按预期工作

我有一个称为“水果”的自定义帖子类型,在这个类型下,我有一个称为“水果类别”的层次分类法当我在Fruit下创建一个新帖子时,我可以将其分配到一个“术语”,就像您在普通帖子类别下一样,但在Fruit Categories分类下。我在Fruit上增加了三个职位,每个职位分别分配给一个任期;“苹果”、“梨”和“香蕉”。所有这些都很好,但现在我想创建一个归档页面,简单地列出UL中的术语,用于自定义帖子类型,如下所示;我的网站。玉米/水果我面临的问题是,我使用的每个查询似乎只返回第一个词Apples。其他两个没有显