Wordpress WP_Query meta_query 比较 LIKE 返回 %LIKE%

问题描述 投票:0回答:1

我的查询参数;

$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')) ) 
测试结果,但这很笨拙。

wordpress
1个回答
0
投票

未经测试,但这不是关于字段类型吗? 在 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
        ),
    ),
);
© www.soinside.com 2019 - 2024. All rights reserved.