PHP循环条件

时间:2013-09-27 19:33:57

标签: php wordpress loops

虽然以下代码适用于WordPress,但我的问题更多是关于一般PHP循环。

我想获得过去7天的帖子。我想过去7天才有帖子。如果有一天没有任何帖子,它应该跳到第二天。

我正在使用以下循环来获取过去7天的帖子,但问题是如果一天没有帖子,它将仅在过去7天内循环,无论是否有任何帖子。

所以,我试图仅在有帖子的情况下扩展$ i值,但是如果我把它放在if条件中,它将运行无限次。 感谢您对此提供任何帮助。

$day = date('j');
while( $i <= 7){
    query_posts('day='$day);    
    if (have_posts()){  
        //list posts.
    }   
    $i++;
    $day--;
}

3 个答案:

答案 0 :(得分:1)

您可以按日期而不是按天设置循环和查询的最大值:

$date = date('Y-m-d');
$maxAttempts=100;
$postCount=0;
while( $i <= $maxAttempts && $postCount <= 7 ){
    query_posts('date='$date);    
    if (have_posts()){  
        //list posts.
        $postCount++;
    }   
    $i++;
    $date = date('Y-m-d', strtotime($date .' -1 day'));
}

答案 1 :(得分:0)

试试这个......

$day = date('j');
$post_days_count = 0;
while( $post_days_count < 7){
    query_posts('day='$day);    
    if (have_posts()){
        $post_days_count++;
        //list posts.
    }   
    $day--;
}

答案 2 :(得分:0)

如果找到帖子,你可以将你的循环改为仅增加$i,这意味着循环会一直运行直到找到7个帖子。一定要处理永远找不到7个帖子的情况。