Wordpress ACF:按关系字段搜索

Wordpress ACF:按关系字段搜索,wordpress,advanced-custom-fields,Wordpress,Advanced Custom Fields,我使用了ACF关系字段。字段名为国际\分钟\类别\国家。该字段具有多个值 如果我打印它((get_字段(“international_mins_category_a_countries”),get_the_ID()))将打印一个数组- array ( [0] => 737 [1] => 734 [2] => 723 [3] => 1484 } 现在我正在尝试搜索/过滤带有值的帖子,比如说737 但我没有得到任何结果 Code I have

我使用了ACF关系字段。字段名为
国际\分钟\类别\国家
。该字段具有多个值

如果我打印它(
(get_字段(“international_mins_category_a_countries”),get_the_ID())
)将打印一个数组-

array
(
    [0] => 737
    [1] => 734
    [2] => 723
    [3] => 1484
}
现在我正在尝试搜索/过滤带有值的帖子,比如说
737

但我没有得到任何结果

Code I have used to filter that is ---

'meta_query'    =>  array(
            array(
                'key'       =>  'international_mins_category_a_countries',
                'value'     =>  '737',
                'compare'   =>  'IN',
            ),
        )

但是没有结果。有人能帮忙吗?

来自ACF relationship字段的数据以序列化数组的形式存储在数据库中,这不是这种类型查询的理想格式。该数组已压缩为数据库中的单个字符串,而不是存储为多条记录

这意味着您必须使用LIKE子句来查找匹配的记录

您需要将compare参数设置为LIKE,并在ID周围加引号,以防止不精确的匹配(例如7374、5737等)

ACF不会让您对这些数据的存储方式有太多的控制,但我要指出,LIKE查询的性能通常很差


文档:

因此您只返回关系中的ID-但实际上您可以将其设置为返回整个post对象-这样您就已经拥有了所有的数据。是的,我拥有所有的数据,但我不想选择所有的数据,插入我想选择那些具有ID的数据。您能再解释一下吗?什么类型的关系例如,它是一个关联字段?您还可以提供整个WP查询参数。@justkidding96,这些是另一个帖子类型的id,比如说country。@Alice,您想从该关联字段数组中按id检索所有帖子吗?因此,如果id为7,那么它将匹配737 tooNo,这就是围绕id的双引号的用途。它们将以防止这种类型的错误匹配。
'meta_query'    =>  array(
    array(
        'key'     =>  'international_mins_category_a_countries',
        'value'   =>  '"737"',
        'compare' =>  'LIKE',
    ),
)