• Имеется такой код category.php:

    $all_posts = new WP_Query();
    $args = array(
    	'category_name'  => 'blog',
    	'post_type' => 'any',
    	'posts_per_page' => 2,
    	'paged' => $paged
    );
    $all_posts->query($args);
    $max_page = $all_posts->max_num_pages;
    if ( $all_posts->have_posts() ) :
    while ( $all_posts->have_posts() ) : $all_posts->the_post();
    // do action
    endwhile;
    echo paginate_links( array(
        'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
        'format' => '?paged=%#%',
        'current' => max( 1, get_query_var('paged') ),
        'total' => $max_page,
        'prev_text'    => '<',
        'next_text'    => '&gt'
    ) );
    endif;

    Всё выводится нормально, но при переходе на следующую страницу выдает 404.
    В чем проблема?

Просмотр 9 ответов — с 1 по 9 (всего 9)
  • Как выглядит ссылка для следующей страницы?

    Автор Ucorp

    (@ucorp)

    domen.ru/blog/page/2

    В настройках блога /wp-admin/options-reading.php
    Поставьте 2 в «На страницах блога отображать не более»

    Автор Ucorp

    (@ucorp)

    Это я сделал первым же делом, не работает.

    Попробуйте закомментировать эту строку. Работает?
    'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),

    Что такое $big?

    Автор Ucorp

    (@ucorp)

    Не работает.
    Забыл вставить в пример
    $big = 999999999; // need an unlikely integer

    Попробовал у себя — все работает. Единственное отличие — ссылка
    вместо domen.ru/blog/page/2
    у меня domen.ru/category/blog/page/2

    Автор Ucorp

    (@ucorp)

    В ссылке category у меня нет из-за плагина. Отключил его, всё равно не работает.
    Поднял чистый wordpress, тоже не работает.

    Хмм. У меня работает…

Просмотр 9 ответов — с 1 по 9 (всего 9)
  • Тема «WP_Query и pagination» закрыта для новых ответов.