我在WP循环中使用DateTime函数,将一系列日期附加到每个帖子(开始日期到结束日期),然后可以使用jQuery日历过滤掉。唯一的问题是,每个帖子都有相同的日期,所有帖子都是第一篇帖子的日期,而不是自己的日期。
PHP:
<?php
$args = array(
'post_type' => array( 'title01' ),
'order' => 'asc',
'orderby' => 'title',
'posts_per_page' => -1
);
$loop = new WP_Query( $args );?>
<?php while ( $loop->have_posts() ) : $loop->the_post();?>
<a href="<?php the_permalink(); ?>">
<div class="grid-block-calendar" data-value="<?php $newBegin = DateTime::createFromFormat('dnY', get_field('title01_date_select'));
$newEnd = DateTime::createFromFormat('dnY', get_field('exhibition_date_end'));
$newEnd = $newEnd->modify( '+1 day' );
$newDaterange = new DatePeriod($newBegin, new DateInterval('P1D'), $newEnd);
foreach($newDaterange as $newDate){
echo $newDate->format("jnY") . " ";
} ?>">
</div>
</a>
<?php endwhile; ?>
<?php wp_reset_query(); ?>
<?php
$args = array(
'post_type' => array( 'title02' ),
'order' => 'asc',
'orderby' => 'title',
'posts_per_page' => -1
);
$loop = new WP_Query( $args );?>
<?php while ( $loop->have_posts() ) : $loop->the_post();?>
<a href="<?php the_permalink(); ?>">
<div class="grid-block-calendar" data-value="<?php $begin = DateTime::createFromFormat('dnY', get_field('title02_date_select'));
$end = DateTime::createFromFormat('dnY', get_field('title02_date_end'));
$end = $end->modify( '+1 day' );
$daterange = new DatePeriod($begin, new DateInterval('P1D'), $end);
foreach($daterange as $date){
echo $date->format("jnY") . " ";
} ?>">
</div>
</a>
<?php endwhile; ?>
e.g。第一篇文章显示的日期范围介于2013年5月15日至2013年9月9日之间,而不是仅作为第一篇文章的日期范围,它会显示在所有帖子的data-value
中,但每个帖子都有不同的开始日期和结束日期。
有没有理由我的所有帖子都在同一天?我知道这可能很简单,但我无法弄清问题是什么。
答案 0 :(得分:0)
问题最可能是:get_field('title02_date_end')
如果你var_dump它里面是什么?
我建议像这样使用它:get_field('title02_date_end', get_the_ID())
看看var_dumping是否提供了其他东西。