How to show no more than 5 numbers per page?

I have pagination, and I want to reach and limit it to 5 page numbers,

See below:

Examples:

PREVIOUS 1 2 3 4 5 NEXT PREVIOUS 20 21 22 23 ... 39 NEXT PREVIOUS 59 ... 81 82 83 84 NEXT 

Only five page numbers that they should display.
What part of the code should I change and change?

I am having problems with a combination.

  <?php /* Setup page vars for display. */ if ($page == 0) $page = 1; //if no page var is given, default to 1. $prev = $page - 1; //previous page is page - 1 $next = $page + 1; //next page is page + 1 $lastpage = ceil($total_pages/$limit); //lastpage is = total pages / items per page, rounded up. $lpm1 = $lastpage - 1; //last page minus 1 /* Now we apply our rules and draw the pagination object. We're actually saving the code to a variable in case we want to draw it more than once. */ $pagination = ""; if($lastpage > 1) { $pagination .= "<div class=\"pagination\">"; //previous buttons if ($page > 1) $pagination.= "<a class='buttons' href=\"$targetpage?page=$prev\">previous</a>"; else $pagination.= "<a class='disabled'><buttons disabled>previous</buttons></a>"; //pages if ($lastpage < 7 + ($adjacents * 2)) //not enough pages to bother breaking it up { for ($counter = 1; $counter <= $lastpage; $counter++) { if ($counter == $page) $pagination.= "<a class='current'><buttons style='background-color:#CEF6F5'>$counter</buttons></a>"; else $pagination.= "<a class='buttons' href=\"$targetpage?page=$counter\">$counter</a>"; } } elseif($lastpage > 5 + ($adjacents * 2)) //enough pages to hide some { //close to beginning; only hide later pages if($page < 1 + ($adjacents * 2)) { for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++) { if ($counter == $page) $pagination.= "<a class='current'><buttons style='background-color:#CEF6F5'>$counter</buttons></a>"; else $pagination.= "<a class='buttons' href=\"$targetpage?page=$counter\">$counter</a>"; } $pagination.= "..."; $pagination.= "<a class='buttons' href=\"$targetpage?page=$lpm1\">$lpm1</a>"; $pagination.= "<a class='buttons' href=\"$targetpage?page=$lastpage\">$lastpage</a>"; } //in middle; hide some front and some back elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2)) { $pagination.= "<a class='buttons' href=\"$targetpage?page=1\"> 1 </a>"; $pagination.= "<a class='buttons' href=\"$targetpage?page=2\"> 2 </a>"; $pagination.= "..."; for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++) { if ($counter == $page) $pagination.= "<a class='current'><buttons style='background-color:#CEF6F5'>$counter</buttons></a>"; else $pagination.= "<a class='buttons' href=\"$targetpage?page=$counter\">$counter</a>"; } $pagination.= "..."; $pagination.= "<a class='buttons' href=\"$targetpage?page=$lpm1\">$lpm1</a>"; $pagination.= "<a class='buttons' href=\"$targetpage?page=$lastpage\">$lastpage</a>"; } //close to end; only hide early pages else { $pagination.= "<a href=\"$targetpage?page=1\">1</a>"; $pagination.= "<a href=\"$targetpage?page=2\">2</a>"; $pagination.= "..."; for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++) { if ($counter == $page) $pagination.= "<a class='current'><buttons style='background-color:#CEF6F5'>$counter</buttons></a>"; else $pagination.= "<a class='buttons' href=\"$targetpage?page=$counter\">$counter</a>"; } } } //next buttons if ($page < $counter - 1) $pagination.= "<a class='buttons' href=\"$targetpage?page=$next\">next</a>"; else $pagination.= "<a class='buttons'>next</a>"; $pagination.= "</div>\n"; } ?> 

I'm having a problem tracking the limit for displaying the page number.

+5
source share
2 answers

I used the code below for my wordpress plugin to display pagination and display data in a table. You can use this as per your mysql query.

 <?php echo '<table width="100%" border="1" cellspacing="0" cellpadding="0">'; ?> <col width="10%" /> <col width="25%" /> <col width="25%" /> <col width="30%" /> <col width="10%" /> <?php echo '<tr class="st_th" height="30px">'; echo '<th class="th_id"> ID</th>'; echo '<th class="st_th1"> Name</th>'; echo '<th class="st_th1"> Phone</th>'; echo '<th class="st_th1">Address</th>'; echo '<th class="st_th1">Details</th>'; echo '</tr>'; global $wpdb; $num_rec_per_page=4; if (isset($_GET["page"])) { $page = $_GET["page"]; } else { $page=1; }; $start_from = ($page-1) * $num_rec_per_page; $sql = "SELECT * FROM {$wpdb->prefix}addressbook LIMIT $start_from, $num_rec_per_page"; $result = $wpdb->get_results($sql); foreach($result as $row) { echo '<tr height="25px">'; echo '<td width="10%" class="fast_t">' . $row->id. '</td>'; echo '<td class="st_th1" style="padding-left:5px; width:200px">' . $row->f_name, ' ', $row->m_name, ' ', $row->l_name . '</td>'; echo '<td class="st_th1" style="padding-left:5px;width:200px">' . $row->phone . '</td>'; echo '<td class="st_th1" style="padding-left:5px;width:200px">' . $row->address . '</td>'; //echo '<td style="padding-left:5px">' . $row->address . '</td>'; $pages2 = get_pages(array( 'meta_key' => '_wp_page_template', 'meta_value' => 'user_list_page.php' )); foreach($pages2 as $page2){ //echo $page->ID.'<br />'; } if ( is_user_logged_in() ) { $user_ID = get_current_user_id(); } if ($user_ID==$row->id) { # code... echo '<td '.$attributes.'>'; //echo '<a href="'. get_permalink( $page1->ID).'&id=' . $row->id . '"> Edit</a>|'; if ( get_option('permalink_structure') ) { echo '<a href="'. get_permalink( $page->ID).'?id=' . $row->id . '"> Details</a>'; //echo 'permalinks enabled'; } else { echo '<a href="'. get_permalink( $page->ID).'&id=' . $row->id . '"> Details</a>'; } echo'</td>'; } if ($user_ID!=$row->id) { echo '<td '.$attributes.'><a href="'. get_permalink( $page->ID).'&id=' . $row->id . '"> Details</a></td>'; } echo '</tr>'; } echo '</table>'; $sql = "SELECT * FROM " . $wpdb->prefix."addressbook"; $rs_result = mysql_query($sql); //run the query $total_records = mysql_num_rows($rs_result); //count number of records $total_pages = ceil($total_records / $num_rec_per_page); $aaa = get_permalink( $page2->ID);?> <div class="pagination"> <?php echo "<a href='".$aaa."&page=1'>".'|<'."</a> "; // Goto 1st page for ($i=1; $i<=$total_pages; $i++) { if ( get_option('permalink_structure') ) { echo "<a href='".$aaa."?page=".$i."'>".$i."</a> "; //echo 'permalinks enabled'; } else { echo "<a href='".$aaa."&page=".$i."'>".$i."</a> "; } }; if ( get_option('permalink_structure') ) { echo "<a href='".$aaa."?page=$total_pages'>".'>|'."</a> "; // Goto last page } else { echo "<a href='".$aaa."&page=$total_pages'>".'>|'."</a> "; // Goto last page } echo '</div>';?> </div> 
+1
source

It worked for me. You must pass your current page number and the total number of pages to the function.

 function pageRange(page,pageCount){ var start = page-2, end = page+2; if(end>pageCount){ start-=(end-pageCount); end=pageCount; } if(start<=0){ end+=((start-1)*(-1)); start=1; } end = end>pageCount?pageCount:end; return {start:start, end:end}; } 

EDIT: Check out this script I made https://jsfiddle.net/qsLp6ajL/2/

0
source

All Articles