【问题标题】:Trouble with pagination wordpress category page分页wordpress类别页面的问题
【发布时间】:2013-09-23 07:03:54
【问题描述】:

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

只有第一页有效...

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

【问题讨论】:

    标签: wordpress pagination categories


    【解决方案1】:

    我也遇到了类别模板中的分页问题。 尝试将 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',这样它将从数据库中加载正确的数据。

    【讨论】:

    • 经过很长时间我找到了解决方案! link
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-08
    • 1970-01-01
    • 2017-07-07
    • 1970-01-01
    • 1970-01-01
    • 2011-08-01
    • 1970-01-01
    相关资源
    最近更新 更多