这里的大多数解决方案都假设您为每个帖子分配了一个“日期”自定义字段(在本例中为“事件”),但是我有两个字段 - “from”和“to”字段每个事件。
事件可以跨越多个日期,因此每个事件上的两个字段(使用ACF创建)。前端的日历控件允许用户选择日期范围。
$args = array(
'posts_per_page' => get_option('posts_per_page'),
'paged' => $paged,
'post_type' => 'event',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'to_date',
'value' => date("ymd"),
'compare' => '>=',
'type' => 'NUMERIC'
)
),
'orderby' => 'meta_value_num',
'meta_key' => 'from_date',
);
我认为这很接近,但我没有收到任何帖子。有什么想法吗?
我还尝试了列出here的解决方案,虽然这非常接近工作,但如果事件日期跨越以下日期(例如)
2017年9月25日 至 2017年9月30日
用户将网站上的日期过滤器设置为以下内容:
2017年9月27日 至 2017年9月30日
然后上面的事件不会显示。只有当用户选择“从”日期到25日(事件的开始日期)之前,它才会显示。我要求用户能够过滤和显示事件,即使它们已经在用户选择的“从”日期之前的某个日期开始,如果这有意义的话吗?
答案 0 :(得分:0)
将date_query
替换为'date_query' => array(
array(
'after' => array(
'year' => $from['year'],
'month' => $from['month'],
'day' => $from['day'],
),
'before' => array(
'year' => $to['year'],
'month' => $to['month'],
'day' => $to['day'],
),
'inclusive' => true,
),
),
。
FriendModel