0

我在 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/

只有第一页有效...

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

4

1 回答 1

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”或其他什么..

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

于 2014-01-24T22:52:03.277 回答