Поддержка Проблемы и решения Как сделать постраничную навигацию?

  • Хочу сделать постраничную навигацию при выборе рубрики.
    Примерный код, работающий на category.php:

    <?php query_posts(array(
    'cat' => 1,
    'paged' => 1,
    'post_per_page' => '1'
    ));
    
    if ( have_posts() ) while (have_posts()) : the_post(); ?>
    <?php endwhile; ?>
    <?php the_posts_pagination(); ?>

    Саму навигацию по страницам выводит, но при попытке перейти ничего не происходит.
    Что я делаю не так?
    Шаблон самописный

    • Тема изменена 6 лет, 2 месяца назад пользователем kolik29.

    Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Модератор Yuri

    (@yube)

    Вот это вот

    
    query_posts(array(
    'cat' => 1,
    'paged' => 1,
    'post_per_page' => '1'
    ));
    

    совершенно лишнее. Даже если нужно внести какие-то изменения в параметры выборки, например, количество записей на страницу, так делать не стоит, для этого в API существует хук ‘pre_get_posts’.

    Модератор Yuri

    (@yube)

    Шаблон самописный

    Шаблон или тема?

    ЧАВО/Терминология « WordPress Codex

    Модератор Yuri

    (@yube)

    
    if ( have_posts() ) while (have_posts()) : the_post(); ?>
    <?php endwhile; ?>
    

    Внутренности Цикла Вы убрали для ясности кода или их там вообще нет?

    Внутренности Цикла Вы убрали для ясности кода или их там вообще нет?

    @yube, для ясности конечно

    Шаблон или тема?

    Тема и шаблон включительно.

    Говорят, что могут влиять постоянные ссылки, но или я что-то делаю не так или это не связано.

    В итоге решил получать номер страницы средствами WP.
    Код такой:

    <?php $pageNum=(get_query_var('paged')) ? get_query_var('paged') : 1; //получаем текущую страницу
    
            query_posts(array(
              'cat' => get_cat_ID($cat_title),
              'paged' => $pageNum, //передаем текущую страницу
              'post_per_page' => 1
            ));
    
            if ( have_posts() ) :
              while ( have_posts() ) : the_post(); ?>
                /* посты */
              <?php endwhile;
              the_posts_pagination();
            else :
            endif; ?>

    Код такой:

    См внимательнее:

    так делать не стоит, для этого в API существует хук ‘pre_get_posts’.

    Если всё ещё не понятно даю наводку — погуглите почему не нужно использовать query_posts.

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Тема «Как сделать постраничную навигацию?» закрыта для новых ответов.