0

我有以下中继器名称:person_specialties. 该中继器必须为每行子字段。

  1. 姓名
  2. is_primary

所以输出将是每行:

  1. 名称,真/假 (0, 1)
  2. 名称,真/假 (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 时它才会返回。

4

0 回答 0