私はwordpressのmeta_queryを使用して、基本的なイベントシステムを構築しようとしています。
各イベントには、いくつかのメタキー/値があります。例えば:
Start Date
End Date
Ongoing (Yes/No)
進行中(進行中=はい)と進行中でない(進行中=いいえ)のイベントを分離したいと思います。
次に、進行中のイベント内で、次のイベントを分離します。
- 2週間以内に開始または2週間以内に終了
- すでに開始され、2週間を超えて終了します
私の問題は、本質的に次のようなケース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'
)
)
);
これは、次の2週間以内に開始および終了する進行中のイベントのみを返します。関係をORに変更すると、進行中でないイベントも表示されます。必要なことを達成する方法はありますか?