0

我正在为我得到的主题而苦苦挣扎,主题使用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();

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

//更新:

我也已经尝试过这个解决方案,到目前为止,我只能说paged变量永远不会在查询中更新。

//更新2:

此页面是自定义的,通过设置 -> 阅读将其设置为主页会禁止上述行为。将其保留为普通页面并将主页设置为最近的帖子时,分页工作正常。

4

2 回答 2

0

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

分页参数

浏览这些法典页面:

保留现有查询参数

相关:分页

于 2012-06-18T13:01:00.250 回答
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 行。其余的看起来完全一样。

于 2012-06-18T13:51:11.277 回答