Php 如何在页数之间隐藏一些页码,并保留前3个页码和最后一个页码
下面的php代码结果分页为1、2、3、4、5、6 我想得到的结果是1,2,3,十,Php 如何在页数之间隐藏一些页码,并保留前3个页码和最后一个页码,php,wordpress,pagination,Php,Wordpress,Pagination,下面的php代码结果分页为1、2、3、4、5、6 我想得到的结果是1,2,3,十, if ( is_array( $pages ) ) { $paged = ( get_query_var( 'paged' ) == 0 ) ? 1 : get_query_var( 'paged' ); echo '<ul class="page-numbers nav-pagination links text-center">';
if ( is_array( $pages ) ) {
$paged = ( get_query_var( 'paged' ) == 0 ) ? 1 : get_query_var( 'paged' );
echo '<ul class="page-numbers nav-pagination links text-center">';
foreach ( $pages as $page ) {
$page = str_replace( 'page-numbers', 'page-number', $page );
echo '<li>' . $page . '</li>';
}
echo '</ul>';
}
?>
if(is_数组($pages)){
$paged=(get_query_var('paged')==0)?1:get_query_var('paged');
echo';
foreach($页为$页){
$page=str_replace(‘页码’、‘页码’、$page);
回显“- ”.$page.“
”;
}
回声“
”;
}
?>
我想和大家分享一个例子
if(is_数组($pages)){
$paged=(get_query_var('paged')==0)?1:get_query_var('paged');
echo';
$i='0';
foreach($页为$页){
$page=str_replace(‘页码’、‘页码’、$page);
$i++;
如果($i==4){
回声“…”;
}其他($i<4 | |$i>(计数($pages)-3)){
回显“- ”.$page.“
”;
}
}
回声“
”;
}
我认为它很好用
更正:您可以修复$i=='4',并在指定的数字后添加“…”。或者,您可以找到$pages数组的中值,并将其替换为4。基于代码,我假设
$pages
是一个包含页码1-10的数组,您希望得到第一个n
和列出的最后一个数字
根据用例的不同,有几种解决方案
解决方案1
如果列表总是从1
开始,并且您可以硬编码前三个元素和省略号,并且只将最后一个页码添加到列表中:
$pages=[1,2,3,4,5,6,7,8,9,10];
$n=3;
对于($k=1;$k请阅读。我们不希望您只告诉我们您想要什么,我们还想告诉我们您迄今为止尝试了什么,以实现它。此网站不是一个代码编写服务。亲爱的梅廷,谢谢,这是工作,但您可以修改它为“i==4”?如何显示当前页面和“..”只在当前页面之后开始。因为使用当前代码,当我们在第5页时,它不会显示。谢谢
if ( is_array( $pages ) ) {
$paged = ( get_query_var( 'paged' ) == 0 ) ? 1 : get_query_var( 'paged' );
echo '<ul class="page-numbers nav-pagination links text-center">';
$i = '0';
foreach ( $pages as $page ) {
$page = str_replace( 'page-numbers', 'page-number', $page );
$i++;
if($i == 4){
echo '...';
} elseif($i < 4 || $i > (count($pages) -3)){
echo '<li>' . $page . '</li>';
}
}
echo '</ul>';
}