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

标签 php wordpress loops while-loop advanced-custom-fields

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

  1. 即将举办的事件 - 根据当前日期检查事件日期。
  2. 已完成的事件 - 过去的事件。

So Coming Soon 事件将是这样的:

<?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 的细节。

关于php - 根据 ACF 日期字段值过滤自定义帖子类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63870725/

相关文章:

php - 使用 PHP Levenshtein 比较 5000 个字符串

javascript - 使用 PHP 和 Javascript 进行跨国银行账户验证

html - WordPress:在图像前面放置具有透明背景的较小图像

linux - 在 ftp 命令内循环

php - CodeIgniter 表单输入安全

php - 如何对下表进行连接操作?

php - 将 `active`类添加到当前单页wordpress的li

jquery - $。 ('.action ' ) 在 Wordpress 上未定义。 $ 未定义

JavaScript Break 语句

c++ - 嵌套的 for 循环没有完成它们的循环