Show Custom type posts with pagination In WORDPRESS
OR
Custom Query results with page-navi pagination in Wordpress
OR
Show Custom Posts with meta value by custom query
<?php
/*
Template Name: Search Page
*/
?>
<?php get_header(); ?>
<div id="wrap">
<div id="content">
<div class="clearfix"></div>
<?php
// Get data from URL into variables
$_name = $_GET['productname'] != '' ? $_GET['productname'] : '';
$_model = $_GET['sortby'] != '' ? $_GET['sortby'] : '';
$_orderby = $_GET['orderby'] != '' ? $_GET['orderby'] : '';
global $wpdb;
global $post;
global $wp_query;
// Pagination Setup
/*
$posts_per_page = 20;
$start = 0;
$paged = get_query_var( 'paged') ? get_query_var( 'paged', 1 ) : 1; // Current page number
$start = ($paged-1)*$posts_per_page;
*/
if($_model=="price")
{
$search_query = "SELECT SQL_CALC_FOUND_ROWS wplc_posts.ID FROM wplc_posts INNER JOIN wplc_postmeta ON ( wplc_posts.ID = wplc_postmeta.post_id and wplc_postmeta.meta_key='price' ) INNER JOIN wplc_postmeta AS mt1 ON ( wplc_posts.ID = mt1.post_id and wplc_postmeta.meta_key='price' ) WHERE 1=1 AND (wplc_posts.post_title LIKE '%$_name%' OR wplc_posts.post_content LIKE '%$_name%') OR ( wplc_postmeta.meta_key = 'price' AND ( ( ( mt1.meta_key = 'price' AND CAST(mt1.meta_value AS CHAR) LIKE '%$_name%' ) OR ( mt1.meta_key = 'manufacturer' AND CAST(mt1.meta_value AS CHAR) LIKE '%$_name%' ) ) ) ) AND wplc_posts.post_type = 'post' AND (wplc_posts.post_status = 'publish' OR wplc_posts.post_status = 'private') GROUP BY wplc_posts.ID ORDER BY wplc_postmeta.meta_value+0 $_orderby LIMIT 0, 20 ";
}elseif($_model=="date")
{
$search_query = "SELECT SQL_CALC_FOUND_ROWS wplc_posts.ID FROM wplc_posts INNER JOIN wplc_postmeta ON ( wplc_posts.ID = wplc_postmeta.post_id and wplc_postmeta.meta_key='manufacturer' ) INNER JOIN wplc_postmeta AS mt1 ON ( wplc_posts.ID = mt1.post_id and wplc_postmeta.meta_key='manufacturer' ) WHERE 1=1 AND (wplc_posts.post_title LIKE '%$_name%' OR wplc_posts.post_content LIKE '%$_name%') OR ( wplc_postmeta.meta_key = 'price' AND ( ( ( mt1.meta_key = 'price' AND CAST(mt1.meta_value AS CHAR) LIKE '%$_name%' ) OR ( mt1.meta_key = 'manufacturer' AND CAST(mt1.meta_value AS CHAR) LIKE '%$_name%' ) ) ) ) AND wplc_posts.post_type = 'post' AND (wplc_posts.post_status = 'publish' OR wplc_posts.post_status = 'private') GROUP BY wplc_posts.ID ORDER BY wplc_posts.post_date $_orderby ";
}else {
$search_query = "SELECT SQL_CALC_FOUND_ROWS wplc_posts.ID FROM wplc_posts INNER JOIN wplc_postmeta ON ( wplc_posts.ID = wplc_postmeta.post_id and wplc_postmeta.meta_key='price' ) INNER JOIN wplc_postmeta AS mt1 ON ( wplc_posts.ID = mt1.post_id and wplc_postmeta.meta_key='price' ) WHERE 1=1 AND (wplc_posts.post_title LIKE '%$_name%' OR wplc_posts.post_content LIKE '%$_name%') OR ( wplc_postmeta.meta_key = 'price' AND ( ( ( mt1.meta_key = 'price' AND CAST(mt1.meta_value AS CHAR) LIKE '%$_name%' ) OR ( mt1.meta_key = 'manufacturer' AND CAST(mt1.meta_value AS CHAR) LIKE '%$_name%' ) ) ) ) AND wplc_posts.post_type = 'post' AND (wplc_posts.post_status = 'publish' OR wplc_posts.post_status = 'private') GROUP BY wplc_posts.ID ORDER BY wplc_posts.post_title $_orderby ";
}
function get_url_var($name)
{
$strURL = $_SERVER['REQUEST_URI'];
$arrVals = split("/",$strURL);
$found = 0;
foreach ($arrVals as $index => $value)
{
if($value == $name) $found = $index;
}
$place = $found + 1;
return $arrVals[$place];
}
$page = get_url_var('page');
if(is_numeric($page))
{
$countpage=$page;
}else { $countpage = 1; }
//next pagination starts
$total_record = count($wpdb->get_results($search_query, ARRAY_A));
$paged = !empty($countpage) ? $countpage: 1;
$post_per_page = get_option('posts_per_page');
$offset = ($paged - 1)*$post_per_page;
$max_num_pages = ceil($total_record/ $post_per_page);
$pagenew = get_query_var('page') ? get_query_var('page') : 1;
$wp_query->found_posts = $total_record;
// number of pages
$wp_query->max_num_pages = $max_num_pages;
$limit_query = " LIMIT ".$post_per_page." OFFSET ".$offset;
$result = $wpdb->get_results($search_query.$limit_query,OBJECT);// return OBJECT
if($result){
foreach ($result as $rowpost):
//setup_postdata($post);
$row_pro_id = $rowpost->ID;
$row_post_details = get_post($row_pro_id);
$post_pro_title = $row_post_details->post_title;
//echo "<pre>"; print_r($row_post_details);
$meta_values = get_post_meta($row_pro_id, "price", true);
$meta_manufacturer = get_post_meta($row_pro_id, "manufacturer" , true);
$meta_image_large= get_post_meta($row_pro_id, "image_large" , true);
if (strlen($post_pro_title) > 35) {
$product_title = substr($post_pro_title, 0, 35);
$product_title = substr($product_title, 0, strrpos($product_title, ' ')) . " ...";
} else {
$product_title = $post_pro_title;
}
//echo "<p>$row_pro_id</p>";
?>
<div class="col-sm-3 product_wrapper">
<div>
<a href="<?php echo $row_post_details->guid; ?>">
<?php if (@getimagesize($meta_image_large) === false) { ?>
<img class="default-img-class" src="<?php bloginfo('template_directory'); ?>/not-available.jpg" alt="<?php echo $product_title; ?>" height="150px" width="150px" />
<?php } else { ?>
<img class="default-img-class" src="<?php echo $meta_image_large; ?>" alt="<?php echo $product_title; ?>" height="150px" width="150px" /><?php } ?>
</a>
</div>
<div class="title_wrapper">
<a class="nodecor" href="<?php echo $row_post_details->guid; ?>" rel="bookmark" title="Permanent Link to <?php echo $product_title; ?> "><?php echo $product_title; ?></a>
<div class="manu_title"><?php if(!empty($meta_manufacturer)) { echo $meta_manufacturer; } ?></div>
</div>
<p class="price_wrapper">$ <?php echo $meta_values; ?></p>
</div>
<?php
endforeach;
?>
<div class="navigation" style="margin-bottom:20px;"><?php wp_pagenavi(); wp_reset_query(); ?></div>
<?php
//next pagination ends here
} else{
?>
<h3>404 Nothing here. Sorry.</h3>
<?php } ?>
<div class="navigation">
<div class="previous panel"><?php //previous_posts_link('« previous ',$max_num_pages)
?>
</div>
<div class="next panel"><?php //next_posts_link('more »',$max_num_pages)
?>
</div>
</div>
</div>
<?php //get_sidebar(); ?>
</div><!--/wrap-->
<?php get_footer(); ?>
Show Custom type posts with pagination In WORDPRESS Is Very Helpful. Thanks for such Information
ReplyDeleteLooking for WordPress Support Visit :
WordPress Support
WordPress Technical Support
WordPress Support Phone Number
Superb Information
ReplyDeleteWP Support
Awesome Information
ReplyDelete24/7 WordPress Support
24/7 WP Support