根据 ACF 日期字段值过滤自定义帖子类型

Sre*_*ree 2 php wordpress loops while-loop advanced-custom-fields

我有一个名为“事件”的自定义帖子类型。所有这些事件页面都有一个ACF 日期字段来输入事件开始日期。在事件存档页面中,我想将这些事件分为两组。

  1. 即将推出的活动 - 检查活动日期与当前日期。
  2. 已完成的活动 - 过去的活动。

所以即将推出的活动将是这样的:

<?php
    $today = date('Ymd');
    $args = array(
        'post_type'     => 'events',
        'nopaging'      => true,
        'orderby'       => 'meta_value_num',
        'meta_key'      => 'event_start_date', //ACF date field
    );
    $upcoming_events = new WP_Query( $args );
    if ( $upcoming_events->have_posts() ) :
?>
<h2>Upcoming Events</h2>
<ul>

<?php while ( $upcoming_events->have_posts() ) : $upcoming_events->the_post(); ?>

<li>
    Title: <?php the_title(); ?><br>
    Date: <?php echo get_field('event_start_date'); ?>
</li>

<?php endwhile; wp_reset_postdata(); ?>

</ul>
<?php endif; ?>
Run Code Online (Sandbox Code Playgroud)

我知道有 meta_query 可以做到这一点。

'meta_query'     => array( array(
    'key'        => 'event_start_date',
    'value'      => '',
    'compare'    => '',
)),
Run Code Online (Sandbox Code Playgroud)

但我不确定如何将事件日期与当前日期进行比较。任何帮助,将不胜感激。

Sre*_*ree 6

在@Wilco 的帮助下我成功解决了这个问题。所以我在这里发布答案,以防其他人遇到同样的问题。

<?php
    $today = date('Ymd');
    $args = array(
        'post_type'     => 'events',
        'nopaging'      => true,
        'orderby'       => 'meta_value_num',
        'meta_key'      => 'event_start_date', //ACF date field
        'meta_query'    => array( array(
            'key' => 'event_start_date', 
            'value' => $today, 
            'compare' => '>=', 
            'type' => 'DATE'
        ))
    );
    $upcoming_events = new WP_Query( $args );
    if ( $upcoming_events->have_posts() ) :
?>
<h2>Upcoming Events</h2>
<ul>

<?php while ( $upcoming_events->have_posts() ) : $upcoming_events->the_post(); ?>

<li>
    Title: <?php the_title(); ?><br>
    Date: <?php echo get_field('event_start_date'); ?>
</li>

<?php endwhile; wp_reset_postdata(); ?>

</ul>
<?php endif; ?>
Run Code Online (Sandbox Code Playgroud)

在这里回答 - https://wordpress.stackexchange.com/questions/11173/what-is-the- Correct-way-to-compare-dates-in-a-wp-query-posts-meta-query 有更多详细信息关于meta_query。