如何通过ACF字段筛选元查询?现有代码故障排查求助
代码错误分析与修正
存在的问题:
- 冗余代码:重复声明了两次
$current_company相关变量,属于无效重复,需删除其中一份。 - 第一个查询的meta_query错误:
meta_query要求是二维数组格式,你直接写了单一层数组;- 关联字段
author_company存储的是公司的ID值,你传入的是$current_company对象,应该用$comp_id。
- 第二个查询的meta_query错误:
- 同样存在
meta_query的二维数组格式问题; - 当
value传入数组($authors是作者ID集合)时,必须指定'compare' => 'IN',否则无法匹配数组内的任意ID。
- 同样存在
修正后的代码:
<?php $current_company = $post; $comp_id = $current_company->ID; $comp_name = $current_company->post_title; ?> <?php // 获取关联该公司的所有作者ID $args = array( 'posts_per_page' => -1, // 替代numberposts,更符合WP规范 'fields' => 'ids', 'post_type' => 'partner_authors', 'meta_query' => array( array( 'key' => 'author_company', 'value' => $comp_id ) ) ); $authors = get_posts( $args ); // 获取关联这些作者的文章 $post_args = array( 'posts_per_page' => 3, 'fields' => 'ids', 'post_type' => 'post', 'meta_query' => array( array( 'key' => 'post_author', 'value' => $authors, 'compare' => 'IN' // 必须添加,匹配数组中的任意ID ) ) ); $partner_posts = get_posts( $post_args ); $count = 0; ?>
内容的提问来源于stack exchange,提问作者Madison Smith
相关产品推荐
相关产品推荐

