亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

添加過渡頁面到分頁

添加過渡頁面到分頁

PHP
慕萊塢森 2023-07-15 17:19:07
現在,當有 9 個頁面時,我需要向臨時頁面添加分頁,如下所示: 1 2 3 ... 9我想給出3和9之間的中間點,即1 2 3 ... 6 ... 9當我位于最后/中間頁面時,我還希望有相同的中間子頁面。但這應該由您自己知道如何邁出第一步來完成。我所有的想法都失敗了。有人對這樣的解決方案有想法嗎?完整的工作代碼在這里:<?php  if( is_singular() )     return; global $wp_query; /** Stop execution if there's only 1 page */ if( $wp_query->max_num_pages <= 1 )     return; $paged = get_query_var( 'paged' ) ? absint( get_query_var( 'paged' ) ) : 1; $max   = intval( $wp_query->max_num_pages ); /** Add current page to the array */ if ( $paged >= 1 )     $links[] = $paged; /** Add the pages around the current page to the array */ if ( $paged >= 3 ) {     $links[] = $paged - 1;     $links[] = $paged - 2; } if ( ( $paged + 2 ) <= $max ) {     $links[] = $paged + 2;     $links[] = $paged + 1; } echo '<div class="navigation"><ul>' . "\n"; /** Previous Post Link */ if ( get_previous_posts_link() )     printf( '<li class="prev_post">%s</li>' . "\n", get_previous_posts_link('<') ); /** Link to first page, plus ellipses if necessary */ if ( ! in_array( 1, $links ) ) {     $class = 1 == $paged ? ' class="active"' : '';     printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( 1 ) ), '1' );     if ( ! in_array( 2, $links ) )         echo '<li>…</li>'; } /** Link to current page, plus 2 pages in either direction if necessary */ sort( $links ); foreach ( (array) $links as $link ) {     $class = $paged == $link ? ' class="active"' : '';     printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $link ) ), $link ); } /** Link to last page, plus ellipses if necessary */ if ( ! in_array( $max, $links ) ) {     if ( ! in_array( $max - 1, $links ) )         echo '<li >…</li>' . "\n";     $class = $paged == $max ? ' class="active"' : '';     printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $max ) ), $max ); }
查看完整描述

1 回答

?
開滿天機

TA貢獻1786條經驗 獲得超13個贊

一般分頁代碼流可能如下所示:


<?php


function getPageDisplayArray(int $currentPage, int $totalCount, int $pageLen = 10): array

{

   $paginationArr[$currentPage] = 1;

   $totalPagesToDisplay = floor(($totalCount) / $pageLen);

   

   //Get preceding pages logic

   $pagesBefore = $currentPage - 1;

   $iBefore = 2; //Number of pages you want befpre the current page

   while($pagesBefore > 0 && $iBefore > 0) { 

       $paginationArr[$pagesBefore--] = 0;

       $iBefore--;

   }


   //Get anteceding pages

   $pagesAfter = $totalPagesToDisplay - ($pagesBefore + 1);

   $iAfter = min([$pagesAfter, 2]); //Number of pages you want after your current page

   while(-$iAfter < 0) { 

       //Either return the two pages after or don't if there are no pages after

       $paginationArr[$iAfter + $currentPage] = 0;

       $iAfter--;

   }


   if($pagesAfter > 2) {

       //Calcluate Midpoint

       $midpoint = floor($totalPagesToDisplay / 2) + 1;

       if(!isset($paginationArr[$midpoint])) {

           $paginationArr[$midpoint] = 0;

       }

   }

   //Link the first page always if it hasn't already been set

   if(!isset($paginationArr[1])) {

       $paginationArr[1] = 0;

   }


   //Link the final page if it has not already been set.

   if(!isset($paginationArr[$totalPagesToDisplay])) {

      $paginationArr[$totalPagesToDisplay] = 0;

   }

   ksort($paginationArr);

   return $paginationArr;

}


其中當前頁面、頁面長度和總計數是您的參數。這里將在兩側顯示兩個頁面作為顯示頁面,以及任何仲裁集的第一頁、最后一頁和中間頁。這將返回一個配置數組,該數組將“活動”頁面的值設置為 1,并將所有其他頁面的鍵設置為頁碼,并將值設置為零。剩下的就是按照您認為合適的方式在布局中顯示值。


查看完整回答
反對 回復 2023-07-15
  • 1 回答
  • 0 關注
  • 95 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號