我在Woocommerce构建快速订单/订单表
我想要的是这样的事情
Main category one
Subcategory
product
product
Subcategory
product
product
Main category two
Subcategory
product
product
Subcategory
product
product
我的问题是如何在正确的类别下查询产品
这是我到目前为止所拥有的
<?php
$custom = array(
'post_type' => 'product',
'posts_per_page' => 100,
);
$cust_query = new WP_Query( $custom );
if ( $cust_query->have_posts() ) :
while( $cust_query->have_posts() ) : $cust_query->the_post();
$cat = get_the_terms( get_the_ID(), 'product_cat' );
?>
<a href="#" class="link"><?php echo $cat[0]->name; ?></a>
<div><?php the_title();?></div>
<?php endwhile;
endif;
这是一次查询每个类别我希望所有具有相同类别的产品都在正确的类别下,且类别仅打印一次
答案 0 :(得分:3)
尝试使用以下代码。在这里,我假设您只有一个级别类别。
Main category one //level 0
Subcategory //level 1
product
product
Subcategory
product
product
Main category two //level 0
Subcategory //level 1
product
product
Subcategory
product
product
<ul class="category-sidebar">
<?php
$get_parent_cats = array(
'parent' => '0', //get top level categories only
'taxonomy'=>'product_cat',
'hide_empty' => false
);
$all_categories = get_categories( $get_parent_cats );//get parent categories
foreach( $all_categories as $single_category ){
//for each category, get the ID
$catID = $single_category->cat_ID;
echo '<li><a href=" ' . get_category_link( $catID ) . ' ">' . $single_category->name . '</a>'; //category name & link
$get_children_cats = array(
'child_of' => $catID, //get children of this parent using the catID variable from earlier
'taxonomy'=>'product_cat',
'hide_empty' => false
);
wp_reset_postdata();
$child_cats = get_categories( $get_children_cats );//get children of parent category
if(count($child_cats)>0){
echo '<ul class="children">';
foreach( $child_cats as $child_cat ){
//for each child category, get the ID
$childID = $child_cat->cat_ID;
//for each child category, give us the link and name
echo '<a href=" ' . get_category_link( $childID ) . ' ">' . $child_cat->name . '</a>';
wp_reset_postdata();
$args = array(
'post_type' => 'product',
'posts_per_page' => -1,
'tax_query' => array(
array(
'taxonomy' => 'product_cat',
'field' => 'id',
'terms' => $childID,
),
),
);
$loop = new WP_Query($args);
echo "<ul>";
if($loop->have_posts()) {
while ( $loop->have_posts() ) {
$loop->the_post();
// do something
echo "<li><a href=".get_the_permalink()."> Product Name : ".get_the_title()."</a></li>";
}
}
echo "</ul>";
}
echo '</ul></li>';
}else{
//$catID
wp_reset_postdata();
$args = array(
'post_type' => 'product',
'posts_per_page' => -1,
'tax_query' => array(
array(
'taxonomy' => 'product_cat',
'field' => 'id',
'terms' => $catID,
),
),
);
$loop = new WP_Query($args);
echo "<ul>";
if($loop->have_posts()) {
while ( $loop->have_posts() ) {
$loop->the_post();
// do something
echo "<li><a href=".get_the_permalink()."> Product Name : ".get_the_title()."</a></li>";
}
}
echo "</ul>";
}
} //end of categories logic ?>