页面网址显示第2页,但从第一页获取帖子

时间:2012-06-18 09:32:05

标签: wordpress pagination

我正在努力争取一个主题,主题使用query_posts()和分页用来工作。现在分页在这个页面上不起作用,它继续在第二页的第一页显示帖子。意思是,网址显示page/2,但我会继续看到该类别的第一个帖子,即每页的前4个帖子。

以下是用于获取帖子的代码:

global $current_category;

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
global $query_string;

$args = "";
if ($current_category['post_type'] == "product") {          
    $args=array(
        'showposts' => 4,
        'paged' => $paged,
        'post_type' => 'product'
    );
} else {
    $args=array(
        'showposts' => 4,
        'category_name' => $current_category['name'],
        'paged' => $paged
    );
}
query_posts($args);

这是循环:

if (have_posts()) : while (have_posts()) : the_post();
    <outputs code here>
endwhile;
else :
    <output no results code here>
endif;

if ( is_home() ) wp_reset_query();

现在,有人可以指出我正确的方向吗?

//更新:

我已经尝试了this solution,到目前为止,我只能告诉paged变量永远不会在查询中更新。

//更新2:

此页面已完成自定义,并通过设置 - &gt;将其设置为主页阅读会禁止上述行为。当它作为普通页面离开,并将其设置为最近的帖子时,分页工作正常。

2 个答案:

答案 0 :(得分:0)

如果模板中有任何自定义查询,请确保集成'paged'参数。

Pagination Parameters

浏览这些法典页面:

Preserving Existing Query Parameters

相关:Pagination

答案 1 :(得分:0)

经过一段很长的研究,我已经解决了这个问题。我的代码现在看起来如下:

global $current_category, $paged;

if ( get_query_var('paged') ) {
    $paged = get_query_var('paged');
} elseif ( get_query_var('page') ) {
    $paged = get_query_var('page');
} else {
    $paged = 1;
}

这只是替换答案中原始代码的前3行。其余的看起来完全一样。