使用Timber实现WordPress分类文章分页时不同页码内容相同问题求助
问题排查
你的代码存在两处错误导致分页失效:
- 参数冲突:
numberposts => -1配置代表拉取全部符合条件的文章,优先级高于posts_per_page,直接覆盖了你设置的每页2篇的规则,分页逻辑完全不生效。 - 参数名错误:WordPress 及 Timber 识别的分页参数为
paged,你代码中写的page参数不会被查询逻辑解析,所以每次默认返回第一页的内容。
修复代码
直接删除冲突的numberposts配置,同时把分页参数名改为paged即可:
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $args = array( 'post_type' => 'post', 'posts_per_page' => 2, 'paged' => $paged, 'category' => get_query_var('cat') ); $context['posts'] = Timber::get_posts($args);
可选优化
针对分类归档页,你也可以直接复用WordPress的主查询,不需要自己构造参数,代码更简洁:
$context['posts'] = Timber::get_posts();
这种方案会自动读取后台设置的每页文章数,也自带分类过滤和分页逻辑,适配性更高。
内容的提问来源于stack exchange,提问作者Filippo
相关产品推荐
相关产品推荐

