我有以下中继器名称:person_specialties
. 该中继器必须为每行子字段。
- 姓名
- is_primary
所以输出将是每行:
- 名称,真/假 (0, 1)
- 名称,真/假 (0, 1)
- 等
我添加了以下函数以包含转发器元查询
function api_specialties_repeater( $where ) {
$where = str_replace( "meta_key = 'person_specialties_", "meta_key LIKE 'person_specialties_", $where );
return $where;
}
add_filter( 'posts_where', 'api_specialties_repeater' );
这是我包括 meta_query
$args['meta_query'][] = array(
'relation' => 'AND',
array(
'key' => 'person_specialties_%_name',
'value' => $doctorSpecialtyName,
'compare' => '='
),
array(
'key' => 'person_specialties_%_is_primary',
'value' => '1',
),
);
我的问题是,该is_primary
字段似乎没有被读取。例如,我有多个具有相同专业的人,但并非所有人都是初级的。我认为它正在搜索每一行并根据它找到的任何内容返回,而不是每行都为真。
因此,当我搜索具有特长的人时,只有当该特长也设置为 true 时它才会返回。