分页wordpress类别页面的麻烦

时间:2013-09-18 13:30:27

标签: wordpress pagination categories

我在wordpress中的类别页面遇到问题,我想显示分页,我使用的方法适用于我过去开发的其他模板。

我获得了类别ID

$category = get_category( get_query_var( 'cat' ) );
$cat_id = $category->cat_ID;

声明分页

    $page = (get_query_var('paged')) ? get_query_var('paged') : 1;

    $wpquery = new WP_Query(array(
        'order' => 'DESC',
        'cat' => $cat_id,
        'posts_per_page' => 4,
        'paged'=>$page
    ));

在我的循环之后我展示了分页

    global $wpquery;
    if( $wpquery->max_num_pages >1){
      $big = 999999999; // need an unlikely integer

      echo paginate_links( array(
     'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
     'format' => '?paged=%#%',
     'current' => max( 1, get_query_var('paged') ),
     'total' => $wpquery->max_num_pages
       ) );
   }

如果你试图去这里

http://192.185.20.70/~t1t/tobeus.it/category/press/
你可以看到第一个&第二页有效,第三页有404 ......

在“事件”等其他类别中

 http://192.185.20.70/~t1t/tobeus.it/category/events/

只有第一页有效...

我无法解决这个奇怪的问题!

1 个答案:

答案 0 :(得分:0)

我在类别模板中也遇到了分页问题。 尝试将paginate_links函数的'format'参数'paged'更改为其他任何参数。

示例:

设置其他参数名称,例如'newparam'

echo paginate_links( array(
...
'format' => '?newparam=%#%',

然后从您的网址

获取
$page = (get_query_var('newparam')) ? get_query_var('newparam') : 1;

另外不要忘记在functions.php文件'add_query_vars_filter'函数中声明'newparam'。

其他解决方案对我没有用,但是这个解决方案确实如此。我无法准确解释原因,但可能是第二页加载时某个地方使用了'paged'参数。

在此示例中,您将使用其他变量名称来传递页码,当另一个页面加载时,您将再次将该值分配给“paged”,因此它将从数据库加载正确的数据。