首页 > 解决方案 > 分页只显示第一页

问题描述

我的 wordpress 网站的博客页面在页面底部有各种页面,但无论您点击哪个数字页面,都只会显示结果的第一页。下面是我的代码示例,如果您需要更多,请告诉我。

if(!is_front_page())
     $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
else
     $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
     $args = array('offset'=> 0, 'paged'=>$paged, 'posts_per_page'=>$posts_per_page);
     $wp_query = new WP_Query($args);

if(have_posts()) : 
     while(have_posts()) : the_post();

标签: phpwordpresspagination

解决方案


您正在使用主循环来查询您的帖子而不是您的自定义查询,而且使用变量名称 $wp_query 可能与全局变量 $wp_query 冲突是不明智的,请尝试更改:

$wp_query = new WP_Query($args);

if(have_posts()) : 
     while(have_posts()) : the_post();

$query = new WP_Query($args);

if($query->have_posts()) : 
     while($query->have_posts()) : $query->the_post();

现在分页不起作用的原因也可能是因为您使用了打破分页的参数“offset”:

offset (int) - 要替换​​或通过的帖子数。警告:设置偏移参数会覆盖/忽略分页参数并中断分页(单击此处获取解决方法)。当使用“posts_per_page”=>-1(显示所有帖子)时,“offset”参数将被忽略。来源:https ://codex.wordpress.org/Class_Reference/WP_Query

在您的情况下使用 offset: 0 (默认)是无关紧要的。


推荐阅读