我使用过ACF关系字段。字段名称为international_mins_category_a_countries
。该字段具有多个值。
如果我打印它((get_field("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',
),
)
但没有结果。有人可以帮忙吗?
答案 0 :(得分:1)
来自ACF关系字段的数据作为序列化数组存储在数据库中,该数组不是此类查询的理想格式。数组已压缩为数据库中的单个字符串,而不是存储为多个记录。
这意味着您必须使用LIKE子句来查找匹配的记录。
您需要将比较参数设置为LIKE,并在ID周围加上引号以防止不完全匹配(例如7374,5737等)。
'meta_query' => array(
array(
'key' => 'international_mins_category_a_countries',
'value' => '"737"',
'compare' => 'LIKE',
),
)
ACF不会让你对这些数据的存储方式有太多控制权,但我会指出LIKE查询通常表现不佳。
文档:https://www.advancedcustomfields.com/resources/querying-relationship-fields/