• Здравствуйте!
    Столкнулся с проблемой вывода рабочей пагинации на страницах с постами из определенных категорий. Сама пагинация выводится, но если кликать по номерам страниц, то загружается всегда та же самая (первая) страница.
    Заметил, что это довольно распространенный вопрос, но рабочих вариантов его решения найти не случилось.
    В том числе и способ с добавлением

    $query = $GLOBALS['wp_query'];
    $paged = $query->get('paged');

    ничем не помог.

    Ссылки в блоге формируются следующего вида: site.ru/nazvanie-stati

    Может ли кто-нибудь поделиться решением?

Просмотр 8 ответов — с 1 по 8 (всего 8)
  • Заметил, что это довольно распространенный вопрос,

    Потому что это грабли, на которые наступают все любители выводить посты из категорий на статических страницах, вместо того, чтобы воспользоваться нормальным выводом категорий. Вы не из них?

    Готов выйти из их рядов — только подскажите как вывести категорию? Или где найти информацию?
    В случае вывода категории можно так же указать лимит записей и пагинация оживет?

    как вывести категорию?

    Движок это делает без дополнительных усилий со стороны админа. В поставочной Теме кликабельный список категорий выводится сразу в сайдбаре. Есть и виджет. Если используется навигационное меню (которое в админке настраивается), то в него можно затащить категории в любом порядке и в любом составе.

    можно так же указать лимит записей

    Лимит берется из настроек чтения. Но можно и для разных категорий сделать разный. Что, прямо скажем, нужно в очень редких случаях.

    и пагинация оживет?

    Если её не пришибло чем-то еще, то да. Куда ж ей деваться-то?

    И прочтите [FAQ] Как вывести посты на странице…, оно не помешает 😉

    Как я понял — верное решение использовать query_posts(). Его-то я, собственно, и применяю. Сделано вот так:

    <?php
    /*
    Template Name: News
    */
    ?>
    <?php get_header(); ?>
    ...
    <h1>Новости</h1>
       <?php query_posts('cat=5&showposts=15'); ?>
    
       <?php while (have_posts()) : the_post(); ?>
          ...
       <?php endwhile; ?>
    
       <?php get_template_part('navigation'); ?>
       ...
    
    <?php get_sidebar('right'); ?>
    <?php get_footer(); ?>

    В файле navigation.php реализована навигация. И она выводится, но не работает так как должна.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Так должна работать:

    <?php query_posts('cat=5&showposts=15&paged=' . get_query_var('paged')); ?>

    Серегй, спасибо вам за вариант! Но, к сожалению, он отказался работать. Пагинация, как и раньше, выводится, но клики по любой из страниц ведут на первую
    Имеет ли значение формирование URL’а? Может мне стоит что-то править в этом направлении? Сейчас они формируются такого вида: site.ru/page/7/
    Возможно, должно присутствовать название категории?

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Попробуйте заменить get_query_var('paged') на get_query_var('page') (вариант из заметки «The Right Way To Use query_posts()» одного из разработчиков). Хотя у меня работало так, как выше. Если не поможет — видимо, всё-таки «пришибло чем-то ещё» 🙂

    Сергей, огромное, вам, спасибо! Пагинация изволила ожить! 🙂
    Долго я искал решение — и, благодаря вам, удалось-таки найти рабочее!!!

Просмотр 8 ответов — с 1 по 8 (всего 8)

Тема «Пагинация на страницах с постами из конкретной катего» закрыта для новых ответов.