Друзья. Все знают что есть вот такая штука <?php query_posts(‘cat=10&showposts=5’); ?> и вот такая wp_list_categories( ) никак не получается их скрестить, чтобы получить следующую картину:
Категория 1
Пост 1 из категории 1
Пост 2 из категории 1
Пост 3 из категории 1
Категория 2
Пост 1 из категории 2
Пост 2 из категории 2
Пост 3 из категории 2
Вот как этого добиться?
Пробовал вот такой способ:
<?php
$c=0;
$categories = get_categories('hide_empty=0');
foreach ($categories as $category) {
echo "<a href=\"". get_category_link( $category->cat_ID )."\">{$category->cat_name}</a><br />";
?>
<?php if (cat_ID != 'empty' and have_posts == true) { echo '<li class="catlist">'; ?>
<ul>
<?php $recent = new WP_Query ("cat=$c & showposts=5"); while ($recent->have_posts ()) : $recent->the_post ();?>
<li><a href="<?php the_permalink () ?>" rel="bookmark">
<?php the_title (); ?>
</a></li>
<?php endwhile; ?>
</ul>
<?php echo "</li>"; } ?>
<?php $c++; } ?>
Но получается, что по категориям счетчик проходит таким макаром 1, 14, 18, 2, 3… а посты при этом выводит 1, 2, 3, 14, 18 короче путает местами. Может есть цивилизованный способ получить подобный список?
1. Избавьтесь от $c. Внутри цикла рубрик есть же вполне кошерная переменная $category->cat_ID
2. Используйте параметры orderby и order в вызове get_categories. Матчасть.
не очень понял, допустил отсортировал категории, а вывести их вперемешку с постами как так и не понял
проблему решил. вытянул из кусок кода из какого-то плагина сайтмапы