虽然以下代码适用于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--;
}
答案 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个帖子的情况。