ACF字段分类ID传入WP_Query参数数组异常:仅输出数字无产品列表
问题解决:ACF分类ID无法传递到WP_Query参数导致产品列表不显示
核心问题
你代码里的the_field('cat_id')是直接输出字段值的函数,而WP_Query的terms参数需要的是变量值,不是直接输出内容。这就导致分类ID被直接打印在页面上,而没有被正确传入查询参数,所以产品列表无法加载。
修复代码
把the_field('cat_id')替换成get_field('cat_id'),这个函数会返回字段值而不直接输出:
$params = array( 'posts_per_page' => -1, 'post_type' => 'product', 'post_status' => 'publish', 'tax_query' => array( 'relation' => 'OR', array( 'taxonomy' => 'product_cat', 'field' => 'term_id', 'terms' => get_field('cat_id'), // 替换为get_field获取值而非直接输出 'operator' => 'IN' ) ) ); $wc_query = new WP_Query($params); ?> <?php if ($wc_query->have_posts()) : ?> <?php while ($wc_query->have_posts()) : $wc_query->the_post(); ?> <!-- 在此添加产品输出代码,比如 the_title()、the_permalink() 等 --> <?php endwhile; wp_reset_postdata(); ?> <!-- 必须重置查询,避免全局变量混乱 --> <?php else : ?> <p>没有找到相关产品</p> <?php endif; ?>
额外注意事项
- 确认
cat_id字段存储的是单个分类ID或ID数组,与operator => 'IN'的逻辑匹配 - 循环结束后调用
wp_reset_postdata()是必要操作,防止后续查询出现数据冲突
内容的提问来源于stack exchange,提问作者that_one_guy
相关产品推荐
相关产品推荐

