Wordpress 使用WooCommerce按类别显示所有产品
使用WooCommerce,我希望以标题的形式显示商店中的所有类别,并在无序列表中列出他们的所有产品。这可能吗?我看到了一些东西,可以让我显示一个类别列表或一个特定类别的产品列表。我在产品页面上使用这些钩子,这段代码只显示产品。所以我需要一些帮助来摆脱这一切。提前谢谢Wordpress 使用WooCommerce按类别显示所有产品,wordpress,woocommerce,hook,hook-woocommerce,Wordpress,Woocommerce,Hook,Hook Woocommerce,使用WooCommerce,我希望以标题的形式显示商店中的所有类别,并在无序列表中列出他们的所有产品。这可能吗?我看到了一些东西,可以让我显示一个类别列表或一个特定类别的产品列表。我在产品页面上使用这些钩子,这段代码只显示产品。所以我需要一些帮助来摆脱这一切。提前谢谢 Here's what I'm currently using to list all categories: <?php /** * The template for displaying product conten
Here's what I'm currently using to list all categories:
<?php
/**
* The template for displaying product content within loops
*
* This template can be overridden by copying it to yourtheme/woocommerce/content-product.php.
*
* HOWEVER, on occasion WooCommerce will need to update template files and you
* (the theme developer) will need to copy the new files to your theme to
* maintain compatibility. We try to do this as little as possible, but it does
* happen. When this occurs the version of the template file will be bumped and
* the readme will list any important changes.
*
* @see https://docs.woocommerce.com/document/template-structure/
* @package WooCommerce/Templates
* @version 3.6.0
*/
defined( 'ABSPATH' ) || exit;
global $product;
// Ensure visibility.
if ( empty( $product ) || ! $product->is_visible() ) {
return;
}
?>
<li <?php wc_product_class( '', $product ); ?>>
<?php
/**
* Hook: woocommerce_before_shop_loop_item.
*
* @hooked woocommerce_template_loop_product_link_open - 10
*/
do_action( 'woocommerce_before_shop_loop_item' );
/**
* Hook: woocommerce_before_shop_loop_item_title.
*
* @hooked woocommerce_show_product_loop_sale_flash - 10
* @hooked woocommerce_template_loop_product_thumbnail - 10
*/
do_action( 'woocommerce_before_shop_loop_item_title' );
/**
* Hook: woocommerce_shop_loop_item_title.
*
* @hooked woocommerce_template_loop_product_title - 10
*/
do_action( 'woocommerce_shop_loop_item_title' );
/**
* Hook: woocommerce_after_shop_loop_item_title.
*
* @hooked woocommerce_template_loop_rating - 5
* @hooked woocommerce_template_loop_price - 10
*/
do_action( 'woocommerce_after_shop_loop_item_title' );
/**
* Hook: woocommerce_after_shop_loop_item.
*
* @hooked woocommerce_template_loop_product_link_close - 5
* @hooked woocommerce_template_loop_add_to_cart - 10
*/
do_action( 'woocommerce_after_shop_loop_item' );
?>
</li>
以下是我目前用于列出所有类别的内容:
我想以标题的形式显示商店中的所有类别,并将其所有产品列在无序列表中。类似的内容应该适合您:
$woocommerce_category_id = get_queried_object_id();
$args = array(
'parent' => $woocommerce_category_id
);
$terms = get_terms( 'product_cat', $args );
if ( $terms ) {
echo '<ul class="woocommerce-categories">';
foreach ( $terms as $term ) {
echo '<li class="woocommerce-product-category-page">';
woocommerce_subcategory_thumbnail( $term );
echo '<h2>';
echo '<a href="' . esc_url( get_term_link( $term ) ) . '" class="' . $term->slug . '">';
echo $term->name;
echo '</a>';
echo '</h2>';
$products = get_cat_products($term);
foreach($products as $product){
//Output products HTML here
}
echo '</li>';
}
echo '</ul>';
}
function get_cat_products($term){
$args = array(
'post_type' => 'product',
'post_status' => 'publish',
'ignore_sticky_posts' => 1,
'tax_query' => array(
array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => $term->name,
'operator' => 'IN'
)
)
);
$products = new WP_Query($args);
return products;
}
$woocommerce\u category\u id=get\u queryed\u object\u id();
$args=数组(
“父项”=>$woocommerce\u类别\u id
);
$terms=获取术语('product\u cat',$args);
如果($条款){
echo';
foreach($terms作为$term){
echo'- ;
woocommerce_子类别_缩略图($term);
回声';
回声';
回声';
$products=获取猫产品($term);
foreach($products as$product){
//在此处输出产品HTML
}
回音“
”;
}
回声“
”;
}
函数获取类别产品($term){
$args=数组(
“post_类型”=>“产品”,
“发布状态”=>“发布”,
“忽略粘性帖子”=>1,
“tax_query”=>数组(
排列(
“分类法”=>“产品分类”,
'字段'=>'段塞',
“术语”=>$term->name,
'运算符'=>'输入'
)
)
);
$products=新的WP_查询($args);
退货产品;
}