首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >显示动态WooCommerce兄弟姐妹和直接子类别列表

显示动态WooCommerce兄弟姐妹和直接子类别列表
EN

Stack Overflow用户
提问于 2021-12-10 14:12:40
回答 1查看 151关注 0票数 0

尝试创建显示当前产品类别的兄弟级和第一级子级的函数。兄弟姐妹的孩子和孩子们的孩子也是如此。

类别可以达到4层深度,我需要列表来改变它所显示的内容取决于当前页面。

示例:

2

  • Category 3 <-当前产品类别
  • 类别3-2<代码>H 212<代码>H 113类别3-3<代码>H 214<代码>H 115类别3-4

  • 分类4
  • 分类5

我发现有几个帖子解释了显示兄弟姐妹的原因,或者是第一级的孩子。但我试图将两者结合起来,但没有成功:

Get a list of siblings term ids from current product category in WooCommerce

Display current category first then child categories in WooCommerce

有什么想法吗?任何能把我引向正确方向的东西都会有帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-10 21:45:08

经过多次尝试和错误之后,我终于明白了:

代码语言:javascript
运行
复制
function wc_cat_menu() {

  $queried_object       = get_queried_object();
  $taxonomy             = 'product_cat';

  $sibling_terms        = get_terms( array(
    'taxonomy'          => $taxonomy,
    'hide_empty'        => false,
    'parent'            => $queried_object->parent
  ) );

  echo '<ul>';

  foreach( $sibling_terms as $sibling ) {
    if ( $sibling->parent > 0 ) {

      $sibling_id = $sibling->term_id;
      
      $siblingChildren  = get_terms( $taxonomy, array( 
        'parent'        => $sibling_id,
        'hide_empty'    => false
      ) );

      echo '<li><a href="' . get_term_link( $sibling ) . '">' . $sibling->name . '<span> (' . $sibling->count . ')</span></a>';        

      if( $siblingChildren ) {
        echo '<ul>';
          foreach ( $siblingChildren as $child ) {
            echo '<li><a href="' . get_term_link( $child, $taxonomy ) . '">' . $child->name . '<span> (' . $child->count . ')</span></a></li>';
          }
        echo '</ul>';
      }

      echo '</li>';
      
    }
  }

  echo '</ul>';

}

在这个过程中学到了很多东西!可能有一个非常有效的方法来实现这一点,任何建议都欢迎。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70305795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档