Php 根据ACF日期字段值筛选自定义帖子类型
我有一个名为“事件”的自定义帖子类型。所有这些事件页面都有一个ACF日期字段,用于输入事件开始日期。在事件存档页面中,我想将这些事件分为两组Php 根据ACF日期字段值筛选自定义帖子类型,php,wordpress,loops,while-loop,advanced-custom-fields,Php,Wordpress,Loops,While Loop,Advanced Custom Fields,我有一个名为“事件”的自定义帖子类型。所有这些事件页面都有一个ACF日期字段,用于输入事件开始日期。在事件存档页面中,我想将这些事件分为两组 即将到来的事件-根据当前日期检查事件日期 已完成事件-过去的事件 因此,即将到来的活动将是这样的: <?php $today = date('Ymd'); $args = array( 'post_type' => 'events', 'nopaging' => true,
<?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; ?>
但我不确定如何将事件日期与当前日期进行比较。任何帮助都将不胜感激。在@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; ?>
即将举行的活动
-
标题:
日期:
回答这里-有更多关于meta_查询的详细信息。在@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; ?>
即将举行的活动
-
标题:
日期:
回答这里-有更多关于meta_查询的详细信息。你可能想看看这个问题。你也可以得到完整的事件列表,用PHP将它们分割成单独的数组,然后循环。你可能想看看这个问题,你也可以得到完整的事件列表,并将它们分割成使用PHP分离数组,然后循环它们。