分页可让您的用户通过多页内容来回浏览。
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();
对于4.1之前的WordPress
如果您希望分页支持旧版本的WordPress,则必须使用paginate_links()。
echo paginate_links();
单职之间的分页
所有以前的功能都应该用在索引和归档页面上。 当您查看单个博文时,您必须使用prev_post_link和next_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; ?>