我被困在这件事上了。我原以为我说的对,但后来意识到不是。
我有一个基于位置的自定义层次分类法。国家是最高级别的,国家是儿童。我在右侧菜单中有顶级状态,选择后,请转到该状态的分类页面。在该州页面中,右侧菜单应仅显示该州的县。相反,它正在检索状态的所有子级并显示。因为这是州的分类页面。
他们的查询是用来确定当前顶层页面并将子级显示为链接的吗?
我的当前代码如下。
$taxonomyName = "location";
//This gets top layer terms only. This is done by setting parent to 0.
$parent_terms = get_terms($taxonomyName, array(\'parent\' => 0, \'orderby\' => \'slug\', \'hide_empty\' => false));
echo \'<ul>\';
foreach ($parent_terms as $pterm) {
//Get the Child terms
$terms = get_terms($taxonomyName, array(\'parent\' => $pterm->term_id,\'orderby\' => \'slug\', \'hide_empty\' => false));
foreach ($terms as $term) {
echo \'<li><h3><a href="\' . get_term_link( $term->name, $taxonomyName ) . \'">\' . $term->name . \'</h3></a></li>\';
}
}
echo \'</ul>\';
最合适的回答,由SO网友:Milo 整理而成
使用get_queried_object()
要在类别页面上获取当前查询的术语,请执行以下操作:
$this_term = get_queried_object();
$args = array(
\'parent\' => $this_term->term_id,
\'orderby\' => \'slug\',
\'hide_empty\' => false
);
$child_terms = get_terms( $this_term->taxonomy, $args );
echo \'<ul>\';
foreach ($child_terms as $term) {
echo \'<li><h3><a href="\' . get_term_link( $term->name, $this_term->taxonomy ) . \'">\' . $term->name . \'</h3></a></li>\';
}
echo \'</ul>\';