Поддержка Проблемы и решения Пагинация записей

  • Всем привет.

    Использую чистую тему с underscores. Столкнулся с такой проблемой — пагинация не работает, если даже работает, то показывает наоборот. Когда надо на вторую страницу, она показывает «предыдущие записи» вместо следующих.
    Не хочется юзать сторонний плагин для этого, если есть вариант преобразить пагинацию со страницами.

Просмотр 10 ответов — с 1 по 10 (всего 10)
  • оно так изначально — вторая страница записей это предыдущие записи. типа по времени они предыдущие.

    замените

    
    the_posts_navigation();
    

    на

    
    the_posts_pagination( array(
        'mid_size'  => 4,
        'end_size' => 1,
        'prev_text' => 'Предыдущая',
        'next_text' => 'Следующая',
    ) ); 
    

    и будет у вас нормальная постраничная навигация.

    Flector (@flector)

    Не совсем, я вставил ваш код, визуально все правильно, но когда перейду например на вторую или третью страницу, активная показывает первая.

    ну это стандартно — «настройки\постоянные ссылки» — нажимаем «сохранить изменения»

    Flector (@flector) не помогло, у меня цикл с query_posts

    • Ответ изменён 4 года, 11 месяцев назад пользователем kudanoff.

    ну так пагинация работает со стандартным циклом, а у вас все выглядит так, словно вы используете произвольные циклы. в таком случае решение найдете здесь:
    https://wordpress.stackexchange.com/questions/174907/how-to-use-the-posts-navigation-for-wp-query-and-get-posts

    Flector (@flector) я лишь добавил категорию =news.

    как добавили то?

    <div class=»news_items col-lg-18 col-md-18″ style=»padding: 0″>
    <?php query_posts(‘category_name=news’);
    if ( have_posts() ) :

    if ( is_home() && ! is_front_page() ) : ?>

    <?php
    endif;

    /* Start the Loop */
    while ( have_posts() ) : the_post();

    get_template_part( ‘template-parts/content’, get_post_format() );

    endwhile;

    the_posts_pagination( array(
    ‘mid_size’ => 4,
    ‘end_size’ => 1,
    ‘prev_text’ => ‘Предыдущая’,
    ‘next_text’ => ‘Следующая’,
    ) );

    else :

    get_template_part( ‘template-parts/content’, ‘none’ );

    endif; ?>
    </div>

    ну вот этот самый query_posts у вас все и портит. проблеме уже за 10 лет, если не больше.

    
    $page = (get_query_var('paged')) ? get_query_var('paged') : 1;
    query_posts("category_name=news&paged=$page");
    

    Flector (@flector) Получилось! Спасибо большое Вам!

    • Ответ изменён 4 года, 11 месяцев назад пользователем kudanoff.
Просмотр 10 ответов — с 1 по 10 (всего 10)
  • Тема «Пагинация записей» закрыта для новых ответов.