所以我有一个页面,我想列出特定类别的帖子,并根据该类别进行编号分页。列出帖子并不是一个问题,因为我使用的是Divi,它很容易做到。但是分页没有进行。
Assuming following scenario:
function myPagination($args = \'\')
{
if (!isset($args[\'category\'])) {
return;
}
ob_start();
$cat_id = get_cat_ID($args[\'category\']);
$mycats = get_categories("include=$cat_id");
$total = $mycats[0]->category_count;
/*only bother with the rest if we have more than 1 page!*/
if ($total > 1) {
/*get the current page*/
if (!$current_page = get_query_var(\'paged\')) {
$current_page = 1;
}
/*structure of "format" depends on whether we\'re using pretty permalinks*/
if (get_option(\'permalink_structure\')) {
$format = \'&paged=%#%\';
} else {
$format = \'page/%#%/\';
}
$pagination = paginate_links(array(
\'base\' => get_pagenum_link(1) . \'%_%\',
\'format\' => $format,
\'current\' => $current_page,
\'total\' => $total,
\'mid_size\' => 3,
\'type\' => \'list\',
\'add_args\' => $query_args
));
ob_end_clean();
return $pagination;
}
}
我能想到的问题是,它并没有用最多的帖子来显示页面间隙。
任何帮助都将不胜感激。
非常感谢。
最合适的回答,由SO网友:Sovit Tamrakar 整理而成
您确实输入了帖子/事件总数作为总页数。您应该将总页数而不是总页数作为“total”参数传递。因此,要作为总页数传递,您应该计算像total\\u POSTS/PER\\u PAGE这样的值。。因此,如果你有6篇文章,每页有2篇文章,那么它将是6/2=3页。。所以“总”值应该是3。。如果你有7篇帖子。。然后是7/2=3.5=4页。。PHP ceil函数实现了将值四舍五入到最高值的技巧。
所以你的部分代码应该是
$total=ceil($mycats[0]->category_count/$my_per_page);
其中$my\\u per\\u page是您的每页变量。
我希望这能解决你的问题