Как добавить нумерацию страниц в пользовательский пост-запрос - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть поле в ACF, где я могу выбирать между различными категориями сообщений. Основываясь на этом выборе, WP добавляет все посты из этой категории на страницу. Теперь я хочу добавить нумерацию страниц, но пока не могу найти решение, я попробовал разные методы из онлайн-уроков. Может ли кто-нибудь дать мне подсказку, как этого добиться?

Мне удалось добавить нумерацию страниц, но она работает неправильно. На каждой странице отображаются одни и те же сообщения, всегда самые новые 2 (или любое другое число, которое я указывал в качестве сообщений на странице). Также навигация глючит, я не могу щелкнуть на странице 1, далее всегда ведет на страницу 2 и т. Д. Что я делаю не так?


<?php
    $paged = get_query_var('paged') ? get_query_var('paged') : 1;
    $args = array(
        'post_type' => 'post',
        'post_status' => 'publish',
        'category_name' => 'news',
        'posts_per_page' => 2,
        'paged' => $paged,
    );
    $arr_posts = new WP_Query( $args );
    if ($arr_posts->have_posts()) :
        while ($arr_posts->have_posts()) : $arr_posts->the_post()
?>
        <div class="col-xs-12 no-padding entry">
            <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
                    <div class="col-xs-12 col-sm-4 col-md-4 col-lg-4 no-padding">
                        <?php
                            if ( has_post_thumbnail() ) :
                                the_post_thumbnail('medium', array( 'class' => 'img-responsive news-img' ));
                            endif;
                        ?>
                    </div>
                    <div class="col-xs-12 col-sm-8 col-md-8 col-lg-8">
                        <header class="entry-header">
                            <p class="entry-date">
                            <?php echo get_the_date( 'd.m.Y' ); ?>
                            </p>
                            <h1 class="entry-title">
                                <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
                            </h1>
                        </header>
                        <div class="entry-content">
                            <?php the_excerpt(); ?>
                        </div>
                    </div>
            </article>
        </div>
        <?php endwhile ?>

        <?php
        $total_pages = $arr_posts->max_num_pages;
        if ($total_pages > 1){

            $current_page = max(1, get_query_var('paged'));

            echo paginate_links(array(
                'base' => get_pagenum_link(1) . '%_%',
                'format' => '/page/%#%',
                'current' => $current_page,
                'total' => $total_pages,
                'prev_text'    => __('« prev'),
                'next_text'    => __('next »'),
                'add_args'  => array()
            ));
        }
            ?>    
        <?php else :?>
        <h3><?php _e('404 Error: Not Found', ''); ?></h3>



    <?php endif; wp_reset_postdata();?>

1 Ответ

0 голосов
/ 03 апреля 2019

Решение: $paged = get_query_var('page') ? get_query_var('page') : 1; используйте страницу вместо постраничной

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...