我有一个数组:
$args = array(
'orderby' => 'meta_value',
'meta_key' => $columnName,
'order' => $columnOrder,
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'shipping_company',
'value' => '^'.$prospectSearch,
'compare' => 'REGEXP',
),
array(
'key' => 'shipping_company',
'value' => '---NV',
'compare' => 'NOT LIKE',
),
array(
'key' => 'shipping_company',
'value' => '---DS',
'compare' => 'NOT LIKE',
),
array(
'key' => 'customer_status',
'value' => '1',
'compare' => '=',
),
),
);
除此之外,我还需要在user_meta表中搜索许多邮政编码,如下所示:
$args['meta_query'][]=array(
'relation' => 'OR',
);
foreach($zips as $zip) {
$args['meta_query'][]=array(
array(
'key' => 'shipping_postcode',
'value' => $zip,
'compare' => '=',
),
);
}
问题是邮政编码部分中的"OR"总是被更改为"AND"。我将此数组如下所示地提供给WP_User_Query:$wpUserQuery = new WP_User_Query($args);
我使用下面的代码行来获取SQL:$wpUserQuery->request;
1条答案
按热度按时间qyzbxkaa1#
我走了一条不同的路线。而不是使用WP_User_Query,我去手动构建SQL字符串并优化它。