分页

分页允许你的用户来回翻阅多个页面的内容。

WordPress可以在以下情况下使用分页:

  • 当一个页面无法容纳更多的文章时,可以查看文章列表
  • 通过使用以下标签,手动拆分长篇文章:
     <!--nextpage--> 

使用分页来浏览文章列表

在WordPress网站中,分页最常见的用途是把长长的文章列表分成独立的页面。无论你是在查看一个博客或网站的分类、存档或默认的索引页,WordPress默认每页只显示10篇文章。用户可以在阅读界面上改变每页显示的文章数量。管理员 > 设置 > 阅读。

 

示例

 

循环与分页

这个简化的例子显示了你可以为主循环添加分页函数的地方。在循环之前或之后添加这些函数。

<?php if ( have_posts() ) : ?>

    <!-- Add the pagination functions here. -->

    <!-- Start of the main loop. -->
    <?php while ( have_posts() ) : the_post(); ?>

    <!-- the rest of your theme's main loop -->

    <?php endwhile; ?>
    <!-- End of the main loop -->

    <!-- Add the pagination functions here. -->


<div class="nav-previous alignleft"><?php next_posts_link( 'Older posts' ); ?></div>



<div class="nav-next alignright"><?php previous_posts_link( 'Newer posts' ); ?></div>


<?php else : ?>

<?php _e('Sorry, no posts matched your criteria.'); ?>

<?php endif; ?>

 

当在模板文件之外使用任何这些分页函数与被分页的循环时,你必须调用全局变量$wp_query。

function your_themes_pagination(){
    global $wp_query; 
    echo paginate_links();
}

WordPress有许多功能来显示循环中的其他页面的链接,这些功能中的一些只在非常特殊的情况下使用。你会在单篇文章的页面和存档页面上使用不同的功能。下面的部分包括存档模板的分页功能。之后的部分涉及单篇文章的分页。

 

简单分页

posts_nav_link

最简单的方法之一是posts_nav_link()。只要把这个函数放在模板中的循环之后,这可以生成下一页文章和上一页文章的链接。这个函数是有简单分页要求的主题的理想选择。

 posts_nav_link(); 

next_posts_link & prev_posts_link

当建立一个主题时,使用next_posts_link()prev_posts_link()来控制上一篇和下一篇文章页面链接的出现位置。

next_posts_link(); 
previous_posts_link();

如果你需要将分页链接传递给一个PHP变量,你可以使用get_next_posts_link()get_previous_posts_link()

$next_posts = get_next_posts_link(); 
$prev_posts = get_previous_posts_link();

 

分页数字

当你有很多页的内容时,显示一个页码列表是更好的体验,这样用户可以点击任何一个页面的链接,而不必重复点击下一个或上一个文章。WordPress提供了几个自动显示数字分页列表的功能。

适用于WordPress 4.1+

如果你想要更强大的分页选项,可以使用WordPress 4.1及以上版本的the_posts_pagination()。这将输出一组带链接的页码,指向文章的上一页和下一页。

the_posts_pagination();

对于WordPress 4.1之前

如果你希望分页支持旧版本的WordPress,你必须使用paginate_links()

echo paginate_links();

 

单篇文章之间的分页

前面的所有功能都应该在索引和存档页上使用,当你查看单篇博客文章时,你必须使用prev_post_linknext_post_link。在你的single.php上的循环下面放置以下函数。

previous_post_link();
next_post_link(); 

 

文章中的分页

WordPress给你一个标签,可以放在文章内容中,使该文章能够分页。

<!--nextpage-->

如果你在内容中使用该标签,需要确保wp_link_pages函数被放置在你的single.php模板的循环中。

<?php if ( have_posts() ) : ?>
  
    <!-- Start of the main loop. -->
    <?php while ( have_posts() ) : the_post(); ?>
     
        <?php the_content(); ?>
         
        <?php wp_link_pages(); ?> 
      
    <?php endwhile; ?>
 
<?php endif; ?>