我的查询参数;
$args = array(
'post_type' => 'product',
'posts_per_page' => -1,
'meta_query' => array(
array(
'key' => 'partner',
'value' => $partner,
'compare' => 'LIKE',
),
),
);
如果我的值
$partner="561"
此查询还返回帖子,其中$partner="5614"
设置
'compare' => '='
或 'compare' =>'INCLUDE'
不会返回任何内容。
我的误解在哪里?
请注意,由于 ACF 的“值”变化莫测,它既可以是数组,也可以是字符串。这也成功返回了一个帖子,其中
$partner= array("561","21423")
目前我正在用
if ( in_array($partner, get_field('partner')) )
测试结果,但这很笨拙。
未经测试,但这不是关于字段类型吗? 在 meta_query 中,type 的默认值为 'CHAR' (文档:https://developer.wordpress.org/reference/classes/wp_meta_query/)
推而广之,也许比较并不严格。
$args = array(
'post_type' => 'product',
'posts_per_page' => -1,
'meta_query' => array(
array(
'key' => 'partner',
'value' => $partner,
'compare' => 'LIKE',
'type' => 'NUMERIC' // <--- add this line
),
),
);