【发布时间】:2017-10-11 00:26:54
【问题描述】:
我正在处理 WordPress 网站中的页面,以使用 event_start_date 和 event_end_date 的自定义字段以及自定义帖子类型 event 来按日期范围显示“即将到来的”和“存档的”事件。我希望“即将发布”页面显示当前日期在此范围内和/或等于开始日期或结束日期的帖子;和“存档”页面显示当前日期完全在日期范围之后的事件。因此,如果今天是 10 月 10 日,日期为 10 月 9 日至 11 日或 10 月 10 日至 12 日的活动将显示在“即将举行”中,而任何之前日期的活动将显示在“已归档”页面上。
我在下面包含我对即将到来的页面和存档页面的查询;即将到来的查询似乎工作正常,但在存档页面中,如果当前日期在它仍会显示的日期范围内,我希望它仅显示过去的事件:
/* upcoming events query */
$event_args = array(
'post_type' => 'event',
'ignore_sticky_posts' => 1,
'posts_per_page' => 10,
'post_status' => 'publish',
'paged' => get_query_var( 'paged' ),
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'event_start_date',
'type' => 'DATE',
'value' => current_time('Ymd'),
'compare' => '>=',
),
array(
'key' => 'event_end_date',
'type' => 'DATE',
'value' => current_time('Ymd'),
'compare' => '>=',
),
),
);
/* archived events query */
$event_args = array(
'post_type' => 'event',
'ignore_sticky_posts' => 1,
'posts_per_page' => 10,
'post_status' => 'publish',
'paged' => get_query_var( 'paged' ),
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'event_start_date',
'type' => 'DATE',
'value' => current_time('Ymd'),
'compare' => '<',
),
array(
'key' => 'event_end_date',
'type' => 'DATE',
'value' => current_time('Ymd'),
'compare' => '<',
),
),
);
因此,用于即将发生的事件查询的meta_query 似乎适用于所有情况,但存档页面的行为未达到预期。感谢您在这里提供的任何帮助,如果我的问题有任何不清楚之处,请告诉我。 编辑我最初忽略了提到我还需要考虑只输入开始日期的场景,即单日事件,这被证明是存档页面查询的症结所在。
【问题讨论】:
标签: php wordpress date custom-wordpress-pages