ACF:按关系字段搜索
ACF: search by relationship field
我使用过 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
}
现在我正在尝试 search/filter 具有 737
值的帖子。
但是我没有得到任何结果。
Code I have used to filter that is ---
'meta_query' => array(
array(
'key' => 'international_mins_category_a_countries',
'value' => '737',
'compare' => 'IN',
),
)
但是没有结果。有人可以帮忙吗?
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/
我使用过 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
}
现在我正在尝试 search/filter 具有 737
值的帖子。
但是我没有得到任何结果。
Code I have used to filter that is ---
'meta_query' => array(
array(
'key' => 'international_mins_category_a_countries',
'value' => '737',
'compare' => 'IN',
),
)
但是没有结果。有人可以帮忙吗?
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/