【发布时间】:2011-08-18 14:48:44
【问题描述】:
我正在使用 wordpress 的 meta_query 来尝试构建一个基本的事件系统。
每个事件都有许多元键/值。例如:
Start Date
End Date
Ongoing (Yes/No)
我想区分正在进行 (Ongoing = Yes) 和 Not Ongoing (Ongoing = No) 的事件。
然后在我的 Ongoing events 中,我想将以下事件分开:
- 两周内开始或两周内结束
- 已经开始并结束超过两周
我的问题在于案例 1,本质上是:
(Start Date <= Two Weeks OR End Date <= Two Weeks) AND Ongoing == YES
使用 WP_Query,我有以下内容:
$ongoingSoon = array(
'category_name' => 'event',
'meta_key' => 'End Date',
'orderby' => 'meta_value',
'order' => 'ASC',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'Start Date',
'value' => $today,
'compare' => '>='
),
array(
'key' => 'End Date',
'value' => $nexttwoweeks,
'compare' => '<='
),
array(
'key' => 'Ongoing',
'value' => 'Yes'
)
)
);
仅返回 Ongoing 开始并且在接下来的两周内结束的事件。如果我将关系更改为 OR,那么它也会显示未进行的事件。有没有办法实现我的需要?
【问题讨论】:
标签: wordpress logic meta custom-fields