RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1182734
Accepted
spl33t
spl33t
Asked:2020-09-26 19:26:45 +0000 UTC2020-09-26 19:26:45 +0000 UTC 2020-09-26 19:26:45 +0000 UTC

显示这些类别中的子类别和产品的列表

  • 772

玩的很开心!

任务是在当前嵌套级别显示子类别和这些类别中的产品的列表。

有一个代码显示忽略活动类别的所有商店类别。

                $args = array(

   'number'     => $number,

   'orderby'   => 'title',

   'order'     => 'ASC',

   'hide_empty' => $hide_empty,

   'include'   => $ids,
                  


);

$product_categories = get_terms( 'product_cat', $args );

$count = count($product_categories);

if ( $count > 0 ){

   foreach ( $product_categories as $product_category ) {

       echo '<h4><a href="' . get_term_link( $product_category ) . '">' . $product_category->name . '</a></h4>';

       $args = array(

           'posts_per_page' => -1,

           'tax_query' => array(

              'relation' => 'AND',

               array(

                   'taxonomy' => 'product_cat',

                   'field' => 'slug',

                   // 'terms' => 'white-wines'

                   'terms' => $product_category->slug

                )

           ),

           'post_type' => 'product',

           'orderby' => 'title,'

       );

       $products = new WP_Query( $args );

       echo "<ul>";

       while ( $products->have_posts() ) {

           $products->the_post();

           ?>

               <li>

                   <a href="<?php the_permalink(); ?>">

                       <?php the_title(); ?>

                   </a>

               </li>

           <?php

       }

       echo "</ul>";

   }

}

?>

有个理解是需要获取活动类别的ID,获取我需要的列表,但是我的php知识不足以实现这个。我挖出了这样一个代码,还有待了解如何在上述代码中正确应用它。

$current_term = get_queried_object();
    $terms = get_terms( [
        'taxonomy' => [ 'product_cat' ],
        'parent'         => $current_term->term_id,
    ] );
var_dump( $terms );

我希望得到您的提示,结果应该类似于以下结构:

商店 > 产品(活跃类别)

水果(儿童类别)

  • 香蕉(产品)
  • 苹果
  • 梨

蔬菜

  • 土豆
  • 洋葱
  • 胡椒
php
  • 2 2 个回答
  • 10 Views

2 个回答

  • Voted
  1. Valerii Vasyliev
    2020-09-27T02:01:32Z2020-09-27T02:01:32Z

    像这样试试

    
    <?php
    $args = array(
                                     'orderby'   => 'title',
                                     'order'     => 'ASC',
                                     'hide_empty' => false,
                                     'parent' => 0
    
    );
    
    $product_categories = get_terms( 'product_cat', $args );
    
    $count = count($product_categories);
    
    if ( $count > 0 ){
    
       foreach ( $product_categories as $product_category ) {
    
            echo '<h4><a href="' . get_term_link( $product_category ) . '">' . $product_category->name . '</a></h4>';
           
            $args = array(
                                    'taxonomy' => 'product_cat',
                                    'hide_empty' => false,
                                    'parent' => $product_category->term_id,
                                    'orderby'   => 'title',
                                    'order' => 'ASC'
                                 );
    
           $subcats = get_terms($args);    
           
           foreach ($subcats as $subcat ) :
           
                 echo ' - <h5><a href="' . get_term_link( $subcat ) . '">' . $subcat->name . '</a></h5>';
                 
                 $args = array(
                                 'posts_per_page' => -1,
                                 'tax_query' => array(
                                 'relation' => 'AND',
                                    array(
                                        'taxonomy' => 'product_cat',
                                        'field' => 'term_id',
                                        'terms' => $subcat->term_id
    
                                    )
    
                                ),
                                'post_type' => 'product',
                                'orderby' => 'title',
                                'post_status' => 'publish'
                              );
    
                $products = new WP_Query( $args );
    
                 echo "<ul>";
    
                while ( $products->have_posts() ) {
    
                    $products->the_post();
    
                    ?>
    
                   <li>
    
                       <a href="<?php the_permalink(); ?>">
    
                           <?php the_title(); ?>
    
                       </a>
    
                   </li>
    
                    <?php
    
                }
                
                wp_reset_postdata();
    
                echo "</ul>";
    
           endforeach;
       }
    }
    
    ?>
    
    • 0
  2. Best Answer
    spl33t
    2020-10-01T21:12:47Z2020-10-01T21:12:47Z

    使用 get_queried_object,可以获得当前类别的对象数组。在参数中,我们使用'parent' => $current_term->term_id,

    $current_term = get_queried_object();
    
    $args = array(
        'number'     => $number,
        'orderby'   => 'title',
        'order'     => 'ASC',
        'hide_empty' => $hide_empty,
        'include'   => $ids,
        'parent'   => $current_term->term_id,               
    );
    
    $product_categories = get_terms( 'product_cat', $args );
    
    $count = count($product_categories);
    
    if ( $count > 0 ){
    
       foreach ( $product_categories as $product_category ) {
    
           echo '<h4><a href="' . get_term_link( $product_category ) . '">' . $product_category->name . '</a></h4>';
    
           $args = array(
    
               'posts_per_page' => -1,
               'tax_query' => array(
                  'relation' => 'AND',
    
                   array(
    
                       'taxonomy' => 'product_cat',
                       'field' => 'slug',
                       // 'terms' => 'white-wines'
                       'terms' => $product_category->slug
    
                    )
    
               ),
    
               'post_type' => 'product',
               'orderby' => 'title,'
    
           );
    
           $products = new WP_Query( $args );
    
           echo "<ul>";
    
           while ( $products->have_posts() ) {
    
               $products->the_post();
    
               ?>
    
                   <li>
    
                       <a href="<?php the_permalink(); ?>">
    
                           <?php the_title(); ?>
    
                       </a>
    
                   </li>
                   
               <?php
           }
           echo "</ul>";
       }
    }
    
    • 0

相关问题

  • mysqli 类的对象无法转换为字符串

  • 您的系统中缺少 ext-http *,您的系统中缺少 ext-mysql_xdevapi *

  • 如何从csv中删除bom?

  • 当我按下 Enter 键时,如何让 PhpStorm 的 Emmet 插件触发,就像 VS Code 一样?

  • 注释在 Symfony5 中不起作用

  • 搜索最近的地理位置点

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    如何从列表中打印最大元素(str 类型)的长度?

    • 2 个回答
  • Marko Smith

    如何在 PyQT5 中清除 QFrame 的内容

    • 1 个回答
  • Marko Smith

    如何将具有特定字符的字符串拆分为两个不同的列表?

    • 2 个回答
  • Marko Smith

    导航栏活动元素

    • 1 个回答
  • Marko Smith

    是否可以将文本放入数组中?[关闭]

    • 1 个回答
  • Marko Smith

    如何一次用多个分隔符拆分字符串?

    • 1 个回答
  • Marko Smith

    如何通过 ClassPath 创建 InputStream?

    • 2 个回答
  • Marko Smith

    在一个查询中连接多个表

    • 1 个回答
  • Marko Smith

    对列表列表中的所有值求和

    • 3 个回答
  • Marko Smith

    如何对齐 string.Format 中的列?

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5