如何输出每个分页步骤中包含的帖子范围而不仅仅是当前页码?
我的意思是: 1-10 11-20 21-30 31-40 ... 101-110下一步代替: 1 2 3 4 5 6 .. 10下一步
我目前的分页功能:
myTab
答案 0 :(得分:0)
不幸的是,paginate_links
功能不允许您更改显示的页码的格式。
paginate_links
函数的来源:https://core.trac.wordpress.org/browser/tags/4.3.1/src/wp-includes/general-template.php#L2742
以下行负责构建页码:
$page_links[] = "<a class='page-numbers' href='" . esc_url( apply_filters( 'paginate_links', $link ) ) . "'>" . $args['before_page_number'] . number_format_i18n( $n ) . $args['after_page_number'] . "</a>";
如您所见,页码只是作为<a>
标记的内容插入而无法更改显示的格式 - number_format_i18n( $n )
要实现您的目标,您应该创建自己的此功能实现。使用原始的wp paginate_links
函数作为示例。
答案 1 :(得分:0)
对于仍在寻找实现这一目标的人。我就这样做了:
$links = paginate_links( array(
'base' => esc_url_raw( str_replace( 999999999, '%#%', remove_query_arg( 'add-to-cart', get_pagenum_link( 999999999, false ) ) ) ),
'format' => '',
'current' => max( 1, get_query_var( 'paged' ) ),
'total' => $query->max_num_pages,
'prev_next' => false,
'end_size' => 4,
'mid_size' => 4,
'type' => 'array',
));
$i = 0;
$current_page = max( 1, get_query_var( 'paged' ) );
foreach( $links as $link ){
$startrange = $i + 1;
$endrange = $i + 10;
// is active ?
if($links[$current_page-1] == $link){
echo preg_replace('/<span(.+?)>.+?<\/span>/i',"<span$1>$startrange - $endrange</span>",$link);
}else{
echo preg_replace('/<a(.+?)>.+?<\/a>/i',"<a$1>$startrange - $endrange </a>",$link);
}
$i += 10;
}