Разбика постов по годам

Можно ли как-то поиздеваться над циклом, чтобы он выглядел так

2011 год

-название поста
-название поста
-название поста

2010 год

-название поста
-название поста
-название поста
-название поста
-название поста
-название поста

и т.д.

Т.е. чтобы в момент, когда начинаюся посты какого-либо года, он высвечиваля в цикле….

Придумал вроде схему. Типа два встроенных перебора.
Берем текущий год, запрашиваем посты по текущему году. Потом уменьшаем год на единицу. Если есть посты, выводим и т.д. Но как это грамогтно сделать на php…

Вот!

$postsyear = date('Y');
// while ($postsyear > 2009) {
$i = 0;
query_posts('cat=1&year='.$postsyear);
if (have_posts()):
while (have_posts()) : the_post();
if ($i == 0) {echo "<h2>"; echo $postsyear; echo "</h2>"; }
the_title();
echo "<br/>";
$i++;
endwhile;
endif;
$postsyear++;
        
// }

While закоментирован, так как в нем что-то у меня не правильно – скрипт просто зависает. Но я знаю. что уже "жарко". Ю.Б., не стесняйтесь 🙂 , скажите где я туплю? Подозреваю что-то со string’aми не так?

Общение сам з собой – иногда полезно. Вот.

$lastyear=2008;
$postsyear=intval(date("Y"));
 
while ($postsyear > $lastyear) {
$i = 0;
query_posts('cat=1&year='.$postsyear);
if (have_posts()):
while (have_posts()) : the_post();
if ($i == 0) {echo "<h2>"; echo $postsyear; echo "</h2>"; }
the_title();
echo "<br/>";
$i++;
endwhile;
endif;
$postsyear--;
 }

Только меня мучает вопрос еще, насколько такой код корректный и не "грузовый". Например. если у нас указан как нижняя планка выборки 2009 год, а постов не было и в 2010, код сразу остановится или будет "думать:"

Anonymous
Отправить
Ответ на: