对于一个可能很暗淡的问题感到抱歉,但我找不到正确的术语来找到解决方案。
我的post_type事件有一个wordpress循环[php while while循环]。每个帖子都有一个带日期字符串的值。我将此字符串与当前日期进行比较。日期值从未来开始到几年前结束。
当循环到达日期值低于当前日期[$date > $eventdate
]的帖子时,我想插入一些代码[分隔符<article>
],然后继续我的循环。我该怎么做?
看起来非常简单但请帮忙,因为我被卡住了!
编辑:我尝试嵌套两个条件while循环,其间有分隔符代码,但这非常糟糕。然后尝试了类似于if的东西,但我也犯了错误。这是[简化]代码:
<?php
$date = date(Ymj);
if ( have_posts() ) : while ( have_posts() ) : the_post();
$eventdate = get_post_meta($post->ID, 'event-date', true); ?>
<article>post goes here</article>
<?php endwhile; else:
?>
答案 0 :(得分:1)
<?php
$did_article = false;
$now = time();
if ( have_posts() ) : while ( have_posts() ) : the_post();
$eventdate = get_post_meta( $post->ID, 'event-date', true );
$eventdate = strtotime( $eventdate );
if ( !$did_article ) {
if ( $now > $eventdate ) {
$did_article = true;
// Do special article stuff here
}
} ?>
Do regular post suff here
<?php endwhile; endif; ?>
答案 1 :(得分:0)
<?php
$date = date(Ymj);
$datetime = strtotime($date);
if ( have_posts() ) : while ( have_posts() ) : the_post();
$eventdate = get_post_meta($post->ID, 'event-date', true); ?>
$eventdatetime = strtotime($eventdate); //$ventdatetime must be seconds
if ($datetime > $eventdatetime) {
<!--here goes the code for past events-->
}
<article>post goes here</article>
<?php endwhile; else:
?>