如何在分类页面上仅显示术语的直接子项

时间:2019-01-25 作者:Knarf

我希望有两个(自动生成的)分类页面,分别由术语名称、术语描述和下一级子术语列表创建。(没有父母和孙子)

我已经建立了一个名为“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>\';
?>
但这是给所有的孩子和孙子孙女看的

谢谢你的时间。

1 个回复
最合适的回答,由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>\';
   }

相关推荐

I receive taxonomy id

您好,我想从字段中获取值,但我收到的id代码如下:function add_product_column( $columns ) { //add column $columns[\'new_column\'] = __( \'New column\', \'woocommerce\' ); return $columns; } add_filter( \'manage_edit-product_columns\', \'add_pr