我正在做一个WordPress项目,在这个项目中,我根据需求实现了自定义分页。它工作得很好,当我们点击到第2页,3等,但当我在另一个页面,而不是第一页,想要移动到第一页,点击1链接,然后它不工作。我不明白是什么问题。
自定义分页代码:
function custom_pagination($numpages = '', $pagerange = '', $paged='') {
if (empty($pagerange)) {
$pagerange = 2;
}
global $paged;
if (empty($paged)) {
$paged = get_query_var( 'paged' ) ? intval( get_query_var( 'paged' ) ) : 1;
}
if ($numpages == '') {
global $wp_query;
$numpages = $wp_query->max_num_pages;
if(!$numpages) {
$numpages = 1;
}
}
$pagination_args = array(
'base' => '%_%',
'format' => '?paged=%#%',
'total' => $numpages,
'current' => $paged,
'show_all' => true,
'end_size' => 1,
'mid_size' => $pagerange,
'prev_next' => True,
'prev_text' => esc_html__('Prev','textdomain'),
'next_text' => esc_html__('Next','textdomain'),
'type' => 'list',
'add_args' => false,
'add_fragment' => ''
);
$paginate_links = paginate_links($pagination_args);
if ($paginate_links) {
echo "<nav class='pagination-nav'>".$paginate_links."</nav>";
}
}
检查你的函数custom_pagination()是否应用front_page,也许你的主题有特殊的模板部分为你的帖子列表页面的第一页。
有很多方法,从主题目录中主循环所在的文件部分开始搜索,并查找:
if((is_home() || is_front_page())){…}
也许你有这样一个段落:
if (!is_page ()){....}
包含第一页的特殊零件模板。
编辑:对不起,我读了你的问题,我的英语很差,你能更具体地说一下,什么是第一页检查器上显示的坏链接,什么是预期的链接?
终于找到了这个问题的解决方案。需要修改代码的基础:
'base' => @add_query_arg('paged','%#%'),