这有点难思考meta_query 这种复杂情况的代码,无法访问数据。:)
您的工作可以表示为以下两个条件:
start_date 之间event_begin 和event_endend_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性能可能成为一个考虑因素,需要聚合多个简单查询,而不是单个复杂查询。