[英]Filter Custom Post Type Based on ACF date field value
我有一个名为“事件”的自定义帖子类型。 所有这些事件页面都有一个ACF 日期字段来输入事件开始日期。 在事件存档页面中,我想将这些事件分为两组。
所以即将推出的活动将是这样的:
<?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.