繁体   English   中英

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

[英]Filter Custom Post Type Based on ACF date field value

我有一个名为“事件”的自定义帖子类型。 所有这些事件页面都有一个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; ?>

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

'meta_query'     => array( array(
    'key'        => 'event_start_date',
    'value'      => '',
    'compare'    => '',
)),

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

在@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; ?>

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM