获取符合ACF字段值的前10个Services自定义文章类型帖子问题
解决ACF单选字段的WP_Query筛选失效问题
你的查询未按预期筛选内容,核心原因是**compare参数使用错误**,再结合几个细节优化即可解决:
问题分析
ACF单选按钮返回的是精确值(inc或com),但你使用了LIKE模糊匹配逻辑,这会导致筛选条件失效,直接返回了默认的前10篇帖子。
修正后的代码
// 初始化分页变量(静态页面需手动获取分页参数) $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1; $tArgs = array( 'post_type' => 'services', 'posts_per_page' => 10, 'paged' => $paged, 'post_status' => 'publish', // 明确只获取已发布内容 'meta_query' => array( array( 'key' => 'completed', 'value' => 'inc', 'compare' => '=', // 改用精确匹配,对应ACF单选的返回值 ), ), ); // 执行查询并循环输出 $services_query = new WP_Query( $tArgs ); if ( $services_query->have_posts() ) : while ( $services_query->have_posts() ) : $services_query->the_post(); // 这里写你的内容输出逻辑,比如: echo '<h3>' . get_the_title() . '</h3>'; endwhile; the_posts_pagination(); wp_reset_postdata(); endif;
额外排查点
- 确认ACF字段的「返回值」设置为值(而非「标签」),如果返回的是标签文本,需将
value参数改为对应标签内容 - 检查数据库
wp_postmeta表,确认completed字段存储的值确实是inc(注意ACF默认区分大小写)
内容的提问来源于stack exchange,提问作者josh_rogers13
相关产品推荐
相关产品推荐

