X
Заказать услугу

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

Плагины и Шаблоны для Wordpress
  • 2018-12-11
  • 2851 просмотр

    1 комментарий

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

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

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

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

Если Вам был полезным мой труд, можете поддержать сайт, обменяться со мной текстовыми ссылками или посмотреть рекламку, что займет 2 минуты :)

Оцените статью
  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
Проголосовало: 8, в среднем: 4.5 из 5
Читайте также
Опубликован 1 комментарий

Добавить комментарий

Чтобы оставить комментарий - заполните поля ниже. Ваш e-mail не будет опубликован. Все поля обязательны

Нажмите, чтобы добавить код в комментарий. Далее добавьте свой код внутрь тегов <code> тут код </code>
Я ознакомлен(а) с политикой конфиденциальности и даю согласие на обработку персональных данных*

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.