Wordpress循环显示分类和帖子下

时间:2017-05-23 07:54:48

标签: wordpress loops wordpress-theming

我是worpdress的新手。我只是得到了这个查询以使用我制作的自定义帖子类型,但现在我在遵循网站的设计规范时遇到了另一个问题。

此页面应显示各自类别下的产品。我制作的循环只显示每个产品,但不显示所有产品的类别。

我打算让它看起来像这样:

CAT

  • ITEM
  • ITEM
  • ITEM
  • ITEM

CAT

  • ITEM
  • ITEM
  • ITEM
  • ITEM

但我只是得到了这个:

  • ITEM
  • ITEM
  • ITEM

我没有找到这样的东西:

  • ITEM,标题下的猫
  • ITEM,标题下的猫
  • ITEM,标题下的猫

      <?php
    $args = array (
      'post_type' => 'products',
      'posts_per_page' => 10,
    );
    
    $loop = new WP_query( $args );
    
    if($loop->have_posts()):
      while($loop->have_posts()): $loop->the_post(); ?>
        <div class="post-loop-single">
          <div class="thumbnail-img"><a href="<?php the_permalink(); ?>"><span><?php the_post_thumbnail('post-thumb'); ?> </span></a></div>
          <div class="post-loop-text">
            <div class="post-loop-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></div>
          </div>
      </div>
      <?php endwhile;
    endif;
    

    &GT;

1 个答案:

答案 0 :(得分:0)

首先使用get_terms()获取所有产品类别,然后在参数中使用tax_query获取与此类别相关的产品。请检查以下代码,它可以帮助您。

$args = array(  
        'orderby'   => 'title',
        'order'     => 'ASC',
    );  
$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,
                        'post_type' => 'product',
                        'orderby' => 'title',                                
                        'tax_query' => array('relation' => 'AND',  
                                            array(  'taxonomy' => 'product_cat',
                                                'field' => 'slug',
                                                'terms' => $product_category->slug  
                                                )  
                                            ),  
                        );  
            $products = new WP_Query( $args );  

            while ( $products->have_posts() ) { $products->the_post();  ?>  

                <div class="post-loop-single">
                    <div class="thumbnail-img"><a href="<?php the_permalink(); ?>"><span><?php the_post_thumbnail('post-thumb'); ?> </span></a></div>
                    <div class="post-loop-text">
                        <div class="post-loop-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></div>
                    </div>
                </div>
     <?php  }  wp_reset_query();

    }  
}