
本文详解如何使用 paginate_links() 函数生成符合 Bootstrap 或自定义 HTML 结构的分页列表,重点解决将页码动态注入 元素的需求,并提供可直接复用的代码示例与最佳实践。
本文详解如何使用 `paginate_links()` 函数生成符合 bootstrap 或自定义 html 结构的分页列表,重点解决将页码动态注入 `
WordPress 默认的分页函数 the_posts_pagination() 生成的是语义化但样式受限的结构,而实际开发中(尤其是构建响应式主题时),我们常需将分页嵌入特定 HTML 模板——例如你提供的 Bootstrap 风格
- 容器中。此时,直接调用 paginate_links() 并设置 'type' => 'list' 是最简洁、原生兼容的解决方案。
- 内,且当前页自动添加 class="current"(而非 active),因此只需微调 CSS 类名或通过参数定制即可无缝集成:
<?php echo paginate_links(array( 'type' => 'list', 'prev_text' => '«', 'next_text' => '»', 'mid_size' => 2, 'total' => $wp_query->max_num_pages, )); ?>⚠️ 注意事项:
- paginate_links() 默认依赖全局 $wp_query,若在自定义查询(如 WP_Query 实例)中使用,务必传入 'total' => $custom_query->max_num_pages 和 'current' => max(1, get_query_var('paged'));
- 输出的
- 默认 class 为 page-numbers,可通过 'class' => 'justify-content-center' 参数覆盖(WordPress 5.7+ 支持),或在外层包裹
- 若需将 class="active" 替换为默认的 class="current",推荐在 CSS 中统一处理:.page-numbers .current { @apply bg-blue-500 text-white; }(Tailwind 示例)或 .page-numbers .current a { ... };
- 避免混用 posts_nav_link() 或 the_posts_pagination(),它们无法生成
- 结构,也不支持 type=list。
后用 CSS 重置样式;最终效果将自动适配你的 HTML 结构需求,无需手动循环或解析 HTML 字符串,既安全又符合 WordPress 编码规范。
该函数会自动输出一个标准的无序列表
- ,其中每个页码都包裹在











