这有点难思考meta_query
这种复杂情况的代码,无法访问数据。:)
您的工作可以表示为以下两个条件:
start_date
之间event_begin
和event_end
end_date
之间event_begin
和event_end
李>
你的第一个病例似乎与两者之间的情况无关,因为这两个病例无论如何都会被抓住。
剩下的部分面临的挑战是,您需要反向逻辑-event_begin
或event_end
之间start_date
和end_date
. 但你不能用同样的方式来表达,因为这些都是每个事件所特有的。
但你真的不在乎他们什么时候来,只在乎他们在搜索日期前后。
因此,还有两个条件可以表示为:
(笑声)start_date
<;=event_begin
) 和(end_date
>= event_begin
) (搜索开始时或前后的事件日期)start_date
<;=event_end
) 和(end_date
>= event_end
) (事件日期在搜索端或搜索端附近)同样,我很难将其写成“理论上”的元查询,但由于元查询可以嵌套,您应该能够将这一切都塞进它们的逻辑中。
PS性能可能成为一个考虑因素,需要聚合多个简单查询,而不是单个复杂查询。