WordPress 自定义查询分页失效的完整解决方案
本文详解 WordPress 中使用 WP_Query 实现分页时“始终显示第一页内容”的常见原因及修复方法,重点解决 paged 参数未生效、offset 干扰分页、next_posts_link() 传参错误等核心问题。 本文详解 wordpress 中使用 `wp_query` 实现分页时“始终显示第一页内容”的常见原因及修复方法,重点解决 `paged` 参数未生效、`offset` 干扰分页、`next_posts_link()` 传参错误等核心问题。在 WordPress 主题开发中,使用 WP_Query 手动构建文章列表并启用分页是高频需求。但许多开发者会遇到一个典型问题:分页链接可点击,URL 也正确变为 /page/2/,但页面内容始终重复显示第一页的 16 篇文章——这并非前端样式或缓存问题,而是后端查询逻辑存在关键疏漏。? 根本原因分析你的代码中存在三个关键错误,共同导致分页失效:offset 与 paged 冲突'offset' => 5 强制跳过前 5 篇文章,而 WP_Query 在启用 paged 时会自动计算偏移量(offset = (paged - 1) * posts_per_page)。手动指定 offset 将覆盖分页机制,使所有分页请求均从第 6 篇开始取 16 篇,造成“每页内容相同”。next_posts_link() 传参错误原代码中 next_posts_link( 'Next Page ', $the_query->max_num_pages ) 使用了未定义的 $the_query 变量。正确应传入当前查询对象 $all_catPosts->max_num_pages,否则函数无法判断总页数,返回空链接或默认回退到主查询分页。分页上下文未正确传递给分页函数get_previous_posts_link() 和 get_next_posts_link() 默认作用于主查询($wp_query),而非你的自定义查询 $all_catPosts。必须配合 previous_posts_link() / next_posts_link() 的第二个参数(即最大页数)才能使其适配自定义查询。 稿定AI 拥有线稿上色优化、图片重绘、人物姿势检测、涂鸦完善等功能
