首页 小编推荐 正文
  • 本文约1259字,阅读需6分钟
  • 105275
  • 56

wordpress 分页

温馨提示:本文最后更新于2025年8月6日 12:30,若内容或图片失效,请在下方留言或联系博主。
摘要

WordPress 分页用于将文章列表、搜索结果或分类页面等内容分成多个页面显示,以提升用户体验和加载速度。分页功能主要通过 paginate_links() 函数实现,同时也可以使用 WordPress 提供的默认分页函数如 previous_posts_link() 和 `next_po...

WordPress 分页用于将文章列表、搜索结果或分类页面等内容分成多个页面显示,以提升用户体验和加载速度。分页功能主要通过 paginate_links() 函数实现,同时也可以使用 WordPress 提供的默认分页函数如 previous_posts_link() 和 next_posts_link()。

1. 使用 paginate_links() 函数

paginate_links() 是 WordPress 中最常用的分页函数,它返回一个包含所有分页链接的 HTML 字符串。该函数通常与查询对象(如 $wp_query)一起使用,适用于自定义查询或主循环。

示例代码:

<?php
global $wp_query;
$big = 999999999; // 避免数字冲突

echo paginate_links( array(
    'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
    'format' => '?paged=%#%',
    'current' => max( 1, get_query_var('paged') ),
    'total' => $wp_query->max_num_pages,
    'prev_text' => __('« Previous'),
    'next_text' => __('Next »'),
) );
?>
  • base:指定分页链接的基础 URL。
  • format:分页参数格式。
  • current:当前页码。
  • total:总页数。
  • prev_text / next_text:上一页和下一页的文本。

2. 使用 previous_posts_link() 和 next_posts_link()

这两个函数分别用于输出“上一页”和“下一页”的链接,适用于简单分页场景。

示例代码:

<?php if ( function_exists('wp_pagenavi') ) { wp_pagenavi(); } else { ?>
<div class="navigation">
    <div class="alignleft"><?php next_posts_link('&laquo; Older Entries') ?></div>
    <div class="alignright"><?php previous_posts_link('Newer Entries &raquo;') ?></div>
</div>
<?php } ?>
  • next_posts_link() 输出“下一页”链接。
  • previous_posts_link() 输出“上一页”链接。

3. 自定义分页样式

可以通过修改 CSS 或使用插件(如 WP PageNavi)来美化分页导航。

4. 在自定义查询中使用分页

如果你使用的是自定义查询(如 WP_Query),可以使用 paginate_links() 来获取分页链接,并确保查询中设置了 paged 参数。

示例代码:

$args = array(
    'post_type' => 'post',
    'posts_per_page' => 5,
    'paged' => get_query_var('paged') ? get_query_var('paged') : 1
);
$query = new WP_Query( $args );

if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        // 显示文章内容
    }
}

// 输出分页链接
global $wp_query;
$big = 999999999;
echo paginate_links( array(
    'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
    'format' => '?paged=%#%',
    'current' => max( 1, get_query_var('paged') ),
    'total' => $query->max_num_pages,
) );

5. 注意事项

  • 确保在查询中设置 paged 参数。
  • 如果使用 WP_Query,需要将 max_num_pages 设置为查询对象的 max_num_pages 属性。
  • 可以通过修改主题中的 index.php、archive.php 或 search.php 文件来添加分页导航。
  • 使用 get_query_var('paged') 获取当前页码,避免出错。

以上是 WordPress 分页的详细介绍。

48453 人点赞
评论