WordPress中文开发手册

WordPress主题开发 — 分页

分页可让您的用户通过多页内容来回浏览。

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; ?>
Tags