问题:ACF字段的ID数组(存储为字符串)不遵守WPQuery(自定义查询)
post_Meta.meta_key的数据= 'EventTopicId'
a:3:{i:0;s:2:“10”;i:1;s:2:“32”;i:2;s:2:“30”;}
我有几个其他的Meta_key字段,结合起来,为WPQuery创建一个过滤器。(例如EventTopicId + CategoryId +.)
Id作为数组传递。当使用“IN”运算符时,查询返回0个结果。这是我发现的最接近我认为我需要的结果。Array into Comma separated array in PHP.
$metaSearchQuery[] =[
'key' => 'EventTopicId',
'value' => $eventTopicId,
'compare' => 'IN'
];
字符串
问题是我的MetaQuery是一个AND关系(filter 1 + filter 2等)。假设'IN'将在ACF字段上完成工作......但如果我传递一个10 $eventTopicId='10']的数组;则返回零个结果。
x1c 0d1x的数据
上面返回0个结果。EndDates和SessionDetails数据对于我正在测试的帖子来说是可以的。看起来正确的SQL应该是
(mt1.meta_key = 'EventTopicId' AND(mt1.meta_value like '“10”' OR mt1.meta_value like '“11”' ...)
如何制作一个WP搜索查询与多个Meta_keys,一些字符串,一些数组。
注意:我尝试过将其转换为字符串,但收效甚微
array_walk($eventTopicId, function(&$value, $key) {
return $value = '"'.$value.'"';
//return $value = (string) $value;
});
型
更新:这个原始的SQL工作。
的
因此,问题仍然存在:如何使用WPQuery和MetaData创建这样的SQL。
1条答案
按热度按时间rxztt3cl1#
结果确实是另一个使用这个答案作为灵感的嵌套数组:https://wordpress.stackexchange.com/questions/104060/using-or-conditions-in-meta-query-for-query-posts-argument
字符串
因此,结果SQL确实是Meta字段之间的AND和单个元字段内特定SERIALISED数据集内的OR。
我遍历了传递的ID并创建了一个$orSearch列表x1c 0d1x
的