GET_TERM_CHILD特定的无ID

时间:2020-04-21 作者:user13320018

大家好,我从codex找到了我需要的东西,那就是通过指定子分类法和宏分类法的id来显示子分类法

get_term_children( int $term_id, string $taxonomy )
如图所示

<?php
$term_id = 10;
$taxonomy_name = \'products\';
$termchildren = get_term_children( $term_id, $taxonomy_name );

echo \'<ul>\';
foreach ( $termchildren as $child ) {
    $term = get_term_by( \'id\', $child, $taxonomy_name );
    echo \'<li><a href="\' . get_term_link( $child, $taxonomy_name ) . \'">\' . $term->name . \'</a></li>\';
}
echo \'</ul>\';
?> 
好的,这样做很好,我想知道是否有另一种可能,而不是指定子分类的id,它不是通过编写名称来指定的最好的方法,如何做到这一点?

有一个典型的结果

<?php
$term_id = \'telephone\';
$taxonomy_name = \'products\';
$termchildren = get_term_children( $term_id, $taxonomy_name );

echo \'<ul>\';
foreach ( $termchildren as $child ) {
    $term = get_term_by( \'id\', $child, $taxonomy_name );
    echo \'<li><a href="\' . get_term_link( $child, $taxonomy_name ) . \'">\' . $term->name . \'</a></li>\';
}
echo \'</ul>\';
?> 
我写宏和微只是为了理解这个问题,但上下文是“归档”分类法或分类法xxx。php,问题是我在这种情况下(示例)类别->训练->篮球,根据存档页分类篮球,我想让所有训练的孩子出去,我不会用id做这件事

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

根据您的评论:

问题是,我处于“类别->训练->篮球”的情况下,根据存档页“分类篮球”,我想让所有正在训练的孩子都出去,我不会用id做这件事

实际上,您要做的是获取当前术语的所有术语,即具有相同父级的术语。

可以通过将当前术语的父ID与get_terms(), 像这样:

$current_term = get_queried_object();
$siblings     = get_terms(
    [
        \'taxonomy\' => $current_term->taxonomy,
        \'parent\'   => $current_term->parent,
    ]
);

echo \'<ul>\';

foreach ( $siblings as $sibling ) {
    echo \'<li><a href="\' . get_term_link( $sibling ) . \'">\' . $sibling->name . \'</a></li>\';
}

echo \'</ul>\';
请注意,通过使用get_terms(), 而不是get_term_children(), 我避免使用get_term_by().

您可以通过使用wp_list_categories() 要输出列表的HTML,请执行以下操作:

$current_term = get_queried_object();

wp_list_categories(
    [
        \'taxonomy\' => $current_term->taxonomy,
        \'parent\'   => $current_term->parent,
    ]
);

相关推荐

Archive for custom taxonomy

我在函数中定义了一个自定义的post类型电影。phpfunction create_post_type() { register_post_type( \'movies\', array( \'supports\' => array(\'title\', \'editor\' , \'excerpt\' , \'custom-fields\'), \'labels\' => array( \'taxonomies\' => \'m