我在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/
只有第一页有效...
我无法解决这个奇怪的问题!
答案 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”,因此它将从数据库加载正确的数据。