Дизайн та розробка сайту

Query_posts и постраничная навигация WordPress

Query_posts

Доброго времени суток. 🙂

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

Query_posts

У меня уже был урок, где благодаря 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, чтобы добиться нужного результата.

На этом все, спасибо за внимание. 🙂

Дизайн та розробка сайту

Back to top