Custom Pagination Code For Wordpress, PHP with MySql
Pagination in php with custom query
<?php
/**
* Template Name: Downloded Files Page
*
* @package WordPress
* @subpackage Twenty_Fourteen
* @since Twenty Fourteen 1.0
*/
get_header(); ?>
<?php
function paginate($reload, $page, $tpages) {
$adjacents = 2;
$prevlabel = "‹ Prev";
$nextlabel = "Next ›";
$out = "";
// previous
if ($page == 1) {
$out.= "<span>" . $prevlabel . "</span>\n";
} elseif ($page == 2) {
$out.= "<li><a href=\"" . $reload . "\">" . $prevlabel . "</a>\n</li>";
} else {
$out.= "<li><a href=\"" . $reload . "&pageno=" . ($page - 1) . "\">" . $prevlabel . "</a>\n</li>";
}
$pmin = ($page > $adjacents) ? ($page - $adjacents) : 1;
$pmax = ($page < ($tpages - $adjacents)) ? ($page + $adjacents) : $tpages;
for ($i = $pmin; $i <= $pmax; $i++) {
if ($i == $page) {
$out.= "<li class=\"active\"><a href=''>" . $i . "</a></li>\n";
} elseif ($i == 1) {
$out.= "<li><a href=\"" . $reload . "\">" . $i . "</a>\n</li>";
} else {
$out.= "<li><a href=\"" . $reload . "&pageno=" . $i . "\">" . $i . "</a>\n</li>";
}
}
if ($page < ($tpages - $adjacents)) {
$out.= "<li><a style='font-size:11px' href=\"" . $reload . "&pageno=" . $tpages . "\">" . $tpages . "</a>\n</li>";
}
// next
if ($page < $tpages) {
$out.= "<li><a href=\"" . $reload . "&pageno=" . ($page + 1) . "\">" . $nextlabel . "</a>\n</li>";
} else {
$out.= "<span style='font-size:11px'>" . $nextlabel . "</span>\n";
}
$out.= "";
return $out;
}
$per_page = 2; // number of results to show per page
$result = mysql_query("SELECT * FROM wp_uploads");
$total_results = mysql_num_rows($result);
$total_pages = ceil($total_results / $per_page);//total pages we going to have
//-------------if page is setcheck------------------//
if (isset($_GET['pageno'])) {
$show_page = $_GET['pageno']; //it will telles the current page
if ($show_page > 0 && $show_page <= $total_pages) {
$start = ($show_page - 1) * $per_page;
$end = $start + $per_page;
} else {
// error - show first set of results
$start = 0;
$end = $per_page;
}
} else {
// if page isn't set, show first set of results
$start = 0;
$end = $per_page;
}
// display pagination
$page = intval($_GET['pageno']);
$tpages=$total_pages;
if ($page <= 0)
$page = 1;
?>
<div id="main-content" class="main-content">
<div class="container">
<div id="primary" class="content-area">
<div id="content" class="site-content" role="main">
<div class="row">
<h2 class="upload_front_head">Uploaded File List</h2>
<div class="first_div" style="text-align:center;">
<div class="div_heading">
<!--<div class="heading_div">S.No.</div>-->
<div class="heading_div">Ttile</div>
<div class="heading_div">File Name</div>
</div>
<?php
$n= 0;
// loop through results of database query, displaying them in the table
for ($i = $start; $i < $end; $i++) {
$n = $n + 1;
// make sure that PHP doesn't try to show results that don't exist
if ($i == $total_results) {
break;
}
// echo out the contents of each row into a table
echo "<div class='content_row'>";
//echo "<div class='content_data'><strong>".$n.".<strong></div>";
echo "<div class='content_data'>".mysql_result($result, $i, 'title')."</div>";
echo "<div class='content_data'>".mysql_result($result, $i, 'origional_file')."</div>";
echo "</div>";
}
?>
</div>
<div class="pagination_section">
<?php
$reload = get_page_link() . "?tpages=" . $tpages;
echo '<div class="pagination"><ul>';
if ($total_pages > 1) {
echo paginate($reload, $show_page, $total_pages);
}
echo "</ul></div>";
// pagination
?>
</div>
</div>
</div><!-- #content -->
</div><!-- #primary -->
</div>
</div><!-- #main-content -->
<style>
.pagination_section {
float: left;
margin-top: 10px;
text-align: center;
width: 100%;
}
.pagination {
height: 40px;
margin: 20px 0;
}
.pagination ul {
border-radius: 3px;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
display: inline-block;
margin-bottom: 0;
margin-left: 0;
}
.pagination ul li {
display: inline;
}
.pagination li:first-child a, .pagination li:first-child span, .pagination li a {
border-left-width: 1px;
border-radius: 3px 0 0 3px;
color: #3281ae;
font-weight: 800;
}
.pagination a, .pagination span {
-moz-border-bottom-colors: none;
-moz-border-left-colors: none;
-moz-border-right-colors: none;
-moz-border-top-colors: none;
background-color: #fff;
border-color: #ddd;
border-image: none;
border-style: solid;
border-width: 1px 1px 1px 0;
float: left;
line-height: 38px;
padding: 0 14px;
text-decoration: none;
}
.pagination .active a, .pagination .active span {
color: #999;
cursor: default;
}
.pagination a:hover, .pagination .active a, .pagination .active span {
background-color: #f5f5f5;
}
</style>
<?php
get_footer();
?>
No comments:
Post a Comment