У меня уже был урок, где благодаря query_posts, мы осуществляли Вывод случайных записей WordPress. В той статье можете посмотреть и параметры для query_posts, чтобы настроить цикл. В этой статье хочу показать, как сделать постраничную навигацию с query_posts.
Многие сталкиваются с проблемой пагинации на query_posts. В стандартном ее виде, она не работает и все. Искал я долго решение и однажды благодаря всезнающему Гуглу, нашел.
Чтобы все заработало, нужно перед основным циклом, на главной странице или других, где этот цикл встречается и Вам его нужно изменить, добавить вот такой вот код:
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : query_posts('posts_per_page=3&cat=4&paged=' . $paged); ?>
Во второй строке задаем параметры query_posts: 3 записи на страницу и выводить только записи с 4 каталога. Меняйте все под себя, параметры query_posts, как я и писал, изучайте в прошлой статье.
Если Вам нужно вывести цикл на статической странице, то код будет немного другим, на две строки больше. Параметры query_posts меняйте в четвертой строке.
<?php if ( get_query_var('paged') ) { $paged = get_query_var('paged'); } elseif ( get_query_var('page') ) { $paged = get_query_var('page'); } else { $paged = 1; } query_posts('posts_per_page=3&cat=4&paged=' . $paged); ?>
В итоге, для первого варианта(для второго по сути то же самое) у меня код получился примерно такого вида:
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : query_posts('posts_per_page=3&cat=3&paged=' . $paged); ?> <?php if (have_posts()) : ?><?php while (have_posts()) : the_post(); ?> //Вывод миниатюры, тизера и тд <?php endwhile; ?> <?php if (function_exists('wp_corenavi')) wp_corenavi(); ?> <?php else : ?> <?php include(TEMPLATEPATH . '/404.php');?> <?php endif; ?>
В 10 строке функция постраничной навигации без плагина, о которой можете прочитать в статье - Постраничная навигация в WordPress без плагина.
Ко мне обратился читатель блога и сообщил, что метод не работает. Я проверил его код и обнаружил, что ошибка была через плагин WP-PageNavi. Так что лучше используйте навигацию из моей статьи.
Сложного по сути, ничего нет. Просто добавить небольшой код перед основным циклом и правильно настроить все нужные параметры query_posts, чтобы добиться нужного результата.
На этом все, спасибо за внимание. 🙂