wordpress ACF数组自定义查询AND OR

kxkpmulp  于 9个月前  发布在  WordPress
关注(0)|答案(1)|浏览(126)

问题: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。

rxztt3cl

rxztt3cl1#

结果确实是另一个使用这个答案作为灵感的嵌套数组:https://wordpress.stackexchange.com/questions/104060/using-or-conditions-in-meta-query-for-query-posts-argument

'meta_query' =>
        array(
           'relation' => 'AND', // default relation
            array(
                'key' => 'met_key_1',
                'value' => '1128',
                'compare' => 'LIKE',
            ),
            array(
                'relation' => 'OR',
                array(
                    'key' => 'meta_key_2',
                    'value' => 'Friday',
                    'compare' => 'LIKE',
                ),
                array(
                    'key' => 'meta_key_2',
                    'value' => 'Saturday',
                    'compare' => 'LIKE',
                ),
            )
        )

字符串
因此,结果SQL确实是Meta字段之间的AND和单个元字段内特定SERIALISED数据集内的OR。
我遍历了传递的ID并创建了一个$orSearch列表x1c 0d1x


相关问题