当前位置: 首页 > 知识库问答 >
问题:

在WooCommerce中列出产品类别的主要产品子类别

笪成周
2023-03-14

我有一个名为“产品类型”的WooCommerce产品类别,我试图列出该类别下的所有类别,但不是这些类别的子类别。例如,我有:

  • 产品类型
    • 碳化物米尔斯
    • 钓鱼工具
      • 儿童类别

      我希望它列出“电石磨坊”和“打捞工具”,但不是“儿童类别”。

      这是我的代码:

      <ul>
      <?php $terms = get_terms(
          array(
              'taxonomy'   => 'product_cat',
              'hide_empty' => false,
                  'child_of' => 32,
                  'post__not_in' => 25,
                  'depth' => 1,
                  'include_children' => false,
          )
      );
      
      // Check if any term exists
      if ( ! empty( $terms ) && is_array( $terms ) ) {
          // Run a loop and print them all
          foreach ( $terms as $term ) { ?>
              <a href="<?php echo esc_url( get_term_link( $term ) ) ?>">
                  <li data-mh="234908ju243">
                  <?php echo $term->name; ?>
                  </li>
              </a><?php
          }
      } ?>
      </ul>
      

      但它仍然返回“儿童类别”。我不知道为什么将深度限制为“1”并将“include_children”设置为“false”不能解决这个问题。

共有1个答案

嵇光临
2023-03-14

您需要将参数parent与“产品类型”术语Id一起使用,以获得直接子术语(子类别),如下所示:

<ul>
<?php 
// Get the WP_Term object for "Product Types" product category (if needed)
$parent_term = get_term_by('name', 'Product Types', 'product_cat' )->term_id;

// Display "Product Types" category
echo' <a href="' . esc_url( get_term_link( $parent_term ) ) . '">' . $parent_term->name . '</a><br>';

// Get main direct subcategories
$terms = get_terms( array(
    'taxonomy'   => 'product_cat',
    'hide_empty' => false,
    'parent'     => $parent_term->term_id,
) );

// Check if any term exists
if ( ! empty( $terms ) && is_array( $terms ) ) {
    // Loop through each term and print them all
    foreach ( $terms as $term ) {
        echo '<li data-mh="234908ju243">
        <a href="' . esc_url( get_term_link( $term ) ) . '">' . $term->name . '</a>
        </li>';
    }
} ?>
</ul>

它应该会起作用。

我对您的html结构做了一些更改,如

 类似资料:
  • 希望你能帮我解决这个问题。我有一个问题,一些产品在子类别404'ing当去那里的产品页面。但奇怪的是,我在谷歌上找不到的只是他们中的一些人在做这件事。 实例 SKU:产品1--类别:类别1 SKU:产品2--类别:类别2,子类别1 SKU:Product3--类别:类别2,子类别1 SKU:Product4--类别:类别2,子类别1 将显示Product1、Product2、Product4。带有

  • 我正在与woocommerce建立电子商务网站。我在父类别下划分了子类别。我上传每个子类别的产品,不仅选择子类别,还选择父类别。但是,当我单击父类别时,我看不到任何产品。我只能在子类别中看到。例如,我有“手表”

  • 我目前正在使用以下代码获取WooCommerce产品类别: 当前显示所有类别,但我希望仅显示子类别。 例如,如果您在“类别1”页面上,则该页面应仅显示该类别中的所有子级。 我在这里看过很多例子,但都找不到适合我需要的东西。

  • 我第一次使用woocommerce(wordpress)。 我试图在树形中显示所有产品类别及其各自的子类别,但我似乎不能像在后端使用拖放方式订购它们那样订购它们。 WP get_terms()只允许按id、名称、计数、slug和none排序。 我使用的代码是:

  • 我不明白!!!我已经设法将产品类别描述包含在各自的页面中。我有6个类别,其中四个我需要添加一个描述。从四个人中,有三个人发挥了应有的作用。然而,其中有一个不仅显示了它的描述,还显示了另一个类别的描述。 每个类别有两个用于多种语言目的。但是你可以看到我需要添加描述的四个类别。 1-上衣2-下装3-一体式4-运动装 前三个起到了应有的作用。即。底部分类页面。 但第四,运动服不仅不断地展示它的描述,而且

  • 在我的WooCommerce网上商店的单一产品显示所有类别,它属于使用以下代码: 现在,我只想显示顶级父类别,而不想显示产品所属的子类别。 我试了很多,但似乎什么都不管用。有人对此有解决方案吗?