gpt4 book ai didi

php - 从 WP_Query 中的当前产品类别术语 ID 获取所有 Woocommerce 产品

转载 作者:行者123 更新时间:2023-12-05 08:53:52 26 4
gpt4 key购买 nike

我有一个简单的 taxonomy-product_cat.php 页面,我试图在其中仅显示当前类别中的产品。现在,它显示所有产品,而不仅仅是当前类别中的产品。这是我的代码:

<ul class="products">

<?php
$current_cat_id = $wp_query->get_queried_object()->term_id;
$args = array(
'taxonomy' => 'product_cat',
'post_type' => 'product',
'post_status' => 'publish',
'posts_per_page' => -1,
'tax_query' => array(
'taxonomy' => 'product_cat',
'field' => 'term_id',
'terms' => $current_cat_id,
'operator' => 'IN'
)
);

$products = new WP_Query( $args );

while ( $products->have_posts() ) : $products->the_post();
echo '<li><a href="'. get_permalink() .'"><div class="product__preview"><img src="' . get_the_post_thumbnail_url() . '"></div><span>' . get_the_title() . '</span></a></li>';
endwhile;

wp_reset_query();
?>
</ul>

我的客户不断更改类别的名称/别名,因此我需要按类别 ID 获取产品。知道为什么这会生成所有产品,而不仅仅是当前类别中的产品吗?

最佳答案

更新 2

The tax query need to have 2 arrays embedded in each other: 'tax_query' => array( array(

删除了第一个不需要的 'taxonomy' => 'product_cat',

'terms' => $current_cat_id, 替换为 'terms' => array( get_queried_object()->term_id ),

替换了wp_reset_query();通过 wp_reset_postdata();

您的代码将是:

$query = new WP_Query( array(
'post_type' => 'product',
'post_status' => 'publish',
'posts_per_page' => -1,
'tax_query' => array( array(
'taxonomy' => 'product_cat',
'field' => 'term_id',
'terms' => array( get_queried_object()->term_id ),
) )
) );

while ( $query->have_posts() ) : $query->the_post();
echo '<li><a href="'. get_permalink() .'"><div class="product__preview"><img src="' . get_the_post_thumbnail_url() . '"></div><span>' . get_the_title() . '</span></a></li>';
endwhile;

wp_reset_postdata();

已测试并有效

关于php - 从 WP_Query 中的当前产品类别术语 ID 获取所有 Woocommerce 产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52280338/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com