大家好,我从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做这件事
最合适的回答,由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,
]
);