我希望有两个(自动生成的)分类页面,分别由术语名称、术语描述和下一级子术语列表创建。(没有父母和孙子)
我已经建立了一个名为“Products”的CPT和一个名为“Structure”的自定义层次分类法。分类法具有层次术语
level1a
level1b
-level2a
-level2b
--level3a
--level4a
level1c
...
我试图获得/level1a/和/level1b/level2a/等的分类页面。
在每一页上都应该有术语标题、术语描述和当前术语的直接子术语列表。(没有孙子)。
在函数中。php我用
\'rewrite\' => array(\'slug\' => \'products\', \'hierarchical\' => true, \'with_front\' => false),
选项和具有
\'rewrite\' => array( \'slug\' => \'product\', \'hierarchical\' => true, \'with_front\' => false),
选项。
我现在正在为分类法中的正确查询而挣扎。php仅获取直接子级。
我找到的最接近的是
<?php
$taxonomy_name = get_queried_object()->taxonomy; // Get the name of the taxonomy
$term_id = get_queried_object_id(); // Get the id of the taxonomy
$termchildren = get_term_children( $term_id, $taxonomy_name ); // Get the children of said taxonomy
// Display the children
echo \'<ul>\';
foreach ( $termchildren as $child ) {
$term = get_term_by( \'id\', $child, $taxonomy_name );
echo \'<li><a href="\' . get_term_link( $term->name, $taxonomy_name ) . \'">\' . $term->name . \'</a></li>\';
}
echo \'</ul>\';
?>
但这是给所有的孩子和孙子孙女看的
谢谢你的时间。
最合适的回答,由SO网友:Mohammad Tajul Islam 整理而成
您已通过以下代码获得当前术语id
$current_term_id = get_queried_object_id();
获取父母而非孙子的所有信息
$termchildren = array(
\'hierarchical\' => 1,
\'show_option_none\' => \'\',
\'hide_empty\' => 0,
\'parent\' => $current_term_id ,
\'taxonomy\' => \'Structure\'
);
$subcats = get_categories($termchildren);
//显示子项
foreach ($subcats as $key => $value) {
$term_link = get_term_link( $value );
$name = $value->name;
echo \'<a href="\'.$term_link.\'">\'.$name.\'</a>\';
}