分页功能不起作用

时间:2016-11-08 作者:Madalina Ionescu

我有一个名为“books”的自定义帖子类型,并在静态首页中显示此类型的所有帖子。我的问题是,我试图进行分页,但我在internet上找到的所有功能都无法工作。这是我的代码,像prev\\u next\\u posts\\u link()这样的函数无法工作。我做错了什么?

    $paged = ( get_query_var( \'page\' ) ) ? get_query_var( \'page\' ) : 1;
    $args = array(
        \'post_type\' => \'books\',
        \'posts_per_page\' => 8,
        \'paged\' => $paged
    );
    $loop = new WP_Query( $args );?>

    while ( $loop->have_posts() ) : $loop->the_post();
            // some code
    endwhile; ?>


            <?php if ($loop->max_num_pages > 1) {  var_dump($loop->max_num_pages);?>

                <nav class="prev-next-posts">
                    <div class="prev-posts-link">
                        <?php echo get_next_posts_link( \'Older Entries\', $loop->max_num_pages ); // display older posts link ?>
                    </div>
                    <div class="next-posts-link">
                        <?php echo get_previous_posts_link( \'Newer Entries\' ); // display newer posts link ?>
                    </div>
                    <div>
                        <?php the_posts_pagination(array(
                                \'mid_size\' => 2,
                                \'prev_text\' => __( \'Back\', \'textdomain\' ),
                                \'next_text\' => __( \'Onward\', \'textdomain\' ),
                            )); ?>
                        </div>
                </nav>

1 个回复
最合适的回答,由SO网友:Ranuka 整理而成

不要创建新查询。您可以使用pre_get_posts 对于此类工程。

示例:如果要将书籍和电影自定义帖子类型添加到主页主循环,

function books_movies_cpt_in_home($query) {
  if ($query->is_home() && $query->is_main_query()) {
    $query->set(\'post_type\', array(\'books\',\'movies\'));
  }
}

add_action(\'pre_get_posts\', \'books_movies_cpt_in_home\');

相关推荐

change pagination url

目前,我的分页页面URL为:http://www.example.com/category_name/page/2但我需要将此URL结构更改为:http://www.example.com/category_name/?page=2等有什么解决方案吗?