我有一個自定義帖子類型「events」,其中包含start_date和end_date的自定義字段。我正在嘗試製作即將到來的活動的簡單列表。如果我只查詢一個start_date> =今天的事件,它可以正常工作。如果我在meta_query中添加了「AND」,並且所有事件的結束日期爲< =今天 - 它不返回任何內容。WP_Query meta_query具有2個自定義字段的日期範圍
我的自定義字段(start_date,end_date)存儲爲unix時間戳,這就是我使用'NUMERIC'和'meta_value_num'的原因。 $ today是當前日期的時間戳。這裏是我想要做的例子...拉我的頭髮 - 任何幫助將不勝感激!
工作的:
$args = array(
'post_type' => 'events',
'posts_per_page' => -1,
'meta_key' => 'start_date',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'start_date',
'value' => $today,
'compare' => '>=',
'type' => 'NUMERIC',
),
)
);
當我在用於meta_query第二陣列添加 - 不起作用:
$args = array(
'post_type' => 'events',
'posts_per_page' => -1,
'meta_key' => 'start_date',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'start_date',
'value' => $today,
'compare' => '>=',
'type' => 'NUMERIC',
),
array(
'key' => 'end_date',
'value' => $today,
'compare' => '<=',
'type' => 'NUMERIC',
),
)
);
當我在主查詢使用meta_compare,並且單個meta_query - 不工作:
$args = array(
'post_type' => 'events',
'posts_per_page' => -1,
'meta_key' => 'start_date',
'meta_value_num' => $today,
'meta_compare' => '>=',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'end_date',
'value' => $today,
'compare' => '<=',
'type' => 'date',
),
)
);
當我在主查詢中使用meta_compare和多個meta_queries - 是否N逾時工作:
$args = array(
'post_type' => 'events',
'posts_per_page' => -1,
'meta_key' => 'start_date',
'meta_value_num' => $today,
'meta_compare' => '>=',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'start_date',
'value' => $today,
'compare' => '>=',
'type' => 'NUMERIC',
),
array(
'key' => 'end_date',
'value' => $today,
'compare' => '<=',
'type' => 'NUMERIC',
),
)
);