如何在自定义帖子查询中添加数字分页?

时间:2019-04-02 09:45:08

标签: php wordpress

我在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 :(得分:0)

解决方案: $paged = get_query_var('page') ? get_query_var('page') : 1; 使用页面而不是页面