You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 20:05:17