понедельник, 30 ноября 2009 г.

10 полезных приемов и техник программирования Wordpress - #4 Используем множественные циклы

Используем множественные циклы

Проблема.

Если использовать при программировании сложных Wordpress-страниц более одного цикла, то может случиться так, что один из них будет работать неверно: например, будут повторяться посты и т.д. К счастью, существует очень полезная функция, которая позволяет избежать всех этих неприятностей.

Решение.

Следующий пример включает в себя использование двух циклов. Обратите внимание на функцию rewind_posts(), которая используется в строке номер 8. Этот пример можно использовать в любом Wordpress-файле, который использует циклы, как то: index.php, simple.php и т.д.

<?php query_posts('category_name=featured&showposts=3'); ?>
<?php while (have_posts()) : the_post(); ?>
<!-- Do stuff... -->
<?php endwhile;?>

//loop reset
<?php rewind_posts(); ?>

//Second loop (Get all posts)
<?php while (have_posts()) : the_post(); ?>
<!-- Do stuff... -->
<?php endwhile; ?>

Объяснение кода.

Этот кусочек кода не использует никаких хаков: rewind_posts() – это стандартная функция Wordpress.

rewind_posts() как бы «очищает» результат работы предшествующего цикла (вторая строка в нашем примере), что позволяет использовать второй цикл независимо от результата выполнения первого.