Take the user directly to the page where the date of the event coincides with the current date (pagination)

So, I have a function below to receive my messages, but I want the user to go directly to the page where the messages have the date “today”, which is not the date of publication of the event, but the date of the event when the event occurs, for example, if I have events with the man_date field man_date and today 2015-4-12 I will see directly the page on which this event does not accept these events on the first page.

 function get_table(){ global $wpdb; $c_cid = $_REQUEST['cat']; if(isset($_REQUEST["page"])){ $page_number = filter_var($_REQUEST["page"], FILTER_SANITIZE_NUMBER_INT, FILTER_FLAG_STRIP_HIGH); //filter number if(!is_numeric($page_number)){die('Invalid page number!');} //incase of invalid page number }else{ $page_number = 1; //if there no page number, set it to 1 } $item_per_page = 20; //get total number of records from database for pagination $get_total_row = $wpdb->get_results("SELECT wp_posts.* FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id) WHERE wp_term_taxonomy.taxonomy = 'tipo_manifestazione' AND wp_term_taxonomy.term_id = $c_cid AND wp_posts.post_status = 'publish' AND (wp_posts.vip = 'NULL' OR wp_posts.vip IS NULL) AND wp_posts.post_type = 'manifestazione' GROUP BY wp_posts.ID ORDER BY wp_posts.ID DESC"); $get_total_rows = count($get_total_row); //break records into pages $total_pages = ceil($get_total_rows/$item_per_page); //get starting position to fetch the records $page_position = (($page_number-1) * $item_per_page); ?> <section class="table_container"> <div class="controls_container"> <div class="control"> <select id="months" name="months"> <option value="" selected>Seleziona Mese</option> <option value="01">Gennaio</option> <option value="02">Febbraio</option> <option value="03">Marzo</option> <option value="04">Aprile</option> <option value="05">Maggio</option> <option value="06">Giugno</option> <option value="07">Luglio</option> <option value="08">Agosto</option> <option value="09">Settembre</option> <option value="10">Ottobre</option> <option value="11">Novembre</option> <option value="12">Dicembre</option> </select> </div> <div class="control"> <input type="text" name="location_search" id="location_search" placeholder="Luogo..."/> </div> <div class="control"> <div class="loading" style="display:none;"></div> </div> <div class="control right"> <?php echo paginate_function($item_per_page, $page_number, $get_total_rows, $total_pages); ?> </div> </div> <header class="table_header"> <div class="sec_th first"> <span class="sec_th_t">Voto</span> </div> <div class="sec_th second"> <span class="sec_th_t">Data</span> </div> <div class="sec_th third"> <span class="sec_th_t">Manifestazione</span> </div> <div class="sec_th fourth"> <span class="sec_th_t">Località</span> </div> <div class="sec_th fifth"> <span class="sec_th_t">Percorso Lungo</span> </div> <div class="sec_th sixth"> <span class="sec_th_t">Info</span> </div> </header> <div id="rows_container"> <?php $query = "SELECT wp_posts.* FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id) WHERE wp_term_taxonomy.taxonomy = 'tipo_manifestazione' AND wp_term_taxonomy.term_id = $c_cid AND wp_posts.post_status = 'publish' AND (wp_posts.vip = 'NULL' OR wp_posts.vip IS NULL) AND wp_posts.post_type = 'manifestazione' GROUP BY wp_posts.ID ORDER BY wp_posts.ID DESC LIMIT $page_position, $item_per_page"; $posts = $wpdb->get_results($query); foreach($posts as $post){ $permalink = get_permalink($post->ID); $locations = $wpdb->get_results("SELECT * FROM wp_locations WHERE post_id = $post->ID"); $l = $locations[0]; ?> <article id="row_<?php echo $post->ID;?>" class="table_row"> <div class="ar_td first"> <span class="ar_td_t"><?php echo do_shortcode('[ratings id="'.$post->ID.'"]');?></span> </div> <div class="ar_td second"> <span class="ar_td_t"><?php echo date("dmY", strtotime(get_field('m_f_data',$post->ID)));?></span> </div> <div class="ar_td third"> <a href="<?php echo $permalink;?>"><span class="ar_td_t"><?php echo $post->post_title;?></span></a> </div> <div class="ar_td fourth"> <a href="<?php echo site_url();?>/geo/?location=<?php echo $l->luogo;?>"> <span class="ar_td_t"><?php echo $l->luogo;?></span></a> </div> <div class="ar_td fifth"> <span class="ar_td_t"><?php echo get_field('m_f_percorso_lungo',$post->ID);?></span> </div> <div class="ar_td sixth"> <a href="javascript:void(0);" onclick="show_info('div_<?php echo $post->ID;?>','row_<?php echo $post->ID;?>');" class="show_button">Info +</a> </div> </article> <div id="div_<?php echo $post->ID;?>" class="div_content"> <?php get_post_fields($post->ID);?> </div> <?php } ?> </div> </section> <?php exit(); } function paginate_function($item_per_page, $current_page, $total_records, $total_pages) { $pagination = ''; if($total_pages > 0 && $total_pages != 1 && $current_page <= $total_pages){ //verify total pages and current page number $pagination .= '<ul class="pagination">'; $right_links = $current_page + 3; $previous = $current_page - 3; //previous link $next = $current_page + 1; //next link $first_link = true; //boolean var to decide our first link if($current_page > 1){ $previous_link = ($previous==0)?1:$previous; $pagination .= '<li class="first"><a href="#" data-page="1" title="First">&laquo;</a></li>'; //first link $pagination .= '<li><a href="#" data-page="'.$previous_link.'" title="Previous">&lt;</a></li>'; //previous link for($i = ($current_page-2); $i < $current_page; $i++){ //Create left-hand side links if($i > 0){ $pagination .= '<li><a href="#" data-page="'.$i.'" title="Page'.$i.'">'.$i.'</a></li>'; } } $first_link = false; //set first link to false } if($first_link){ //if current active page is first link $pagination .= '<li class="first active">'.$current_page.'</li>'; }elseif($current_page == $total_pages){ //if it the last active link $pagination .= '<li class="last active">'.$current_page.'</li>'; }else{ //regular current link $pagination .= '<li class="active">'.$current_page.'</li>'; } for($i = $current_page+1; $i < $right_links ; $i++){ //create right-hand side links if($i<=$total_pages){ $pagination .= '<li><a href="#" data-page="'.$i.'" title="Page '.$i.'">'.$i.'</a></li>'; } } if($current_page < $total_pages){ $next_link = ($i > $total_pages)? $total_pages : $i; $pagination .= '<li><a href="#" data-page="'.$next_link.'" title="Next">&gt;</a></li>'; //next link $pagination .= '<li class="last"><a href="#" data-page="'.$total_pages.'" title="Last">&raquo;</a></li>'; //last link } $pagination .= '</ul>'; } return $pagination; //return pagination links } "SELECT wp_posts. * FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id) WHERE wp_term_taxonomy.taxonomy = 'tipo_manifestazione' function get_table(){ global $wpdb; $c_cid = $_REQUEST['cat']; if(isset($_REQUEST["page"])){ $page_number = filter_var($_REQUEST["page"], FILTER_SANITIZE_NUMBER_INT, FILTER_FLAG_STRIP_HIGH); //filter number if(!is_numeric($page_number)){die('Invalid page number!');} //incase of invalid page number }else{ $page_number = 1; //if there no page number, set it to 1 } $item_per_page = 20; //get total number of records from database for pagination $get_total_row = $wpdb->get_results("SELECT wp_posts.* FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id) WHERE wp_term_taxonomy.taxonomy = 'tipo_manifestazione' AND wp_term_taxonomy.term_id = $c_cid AND wp_posts.post_status = 'publish' AND (wp_posts.vip = 'NULL' OR wp_posts.vip IS NULL) AND wp_posts.post_type = 'manifestazione' GROUP BY wp_posts.ID ORDER BY wp_posts.ID DESC"); $get_total_rows = count($get_total_row); //break records into pages $total_pages = ceil($get_total_rows/$item_per_page); //get starting position to fetch the records $page_position = (($page_number-1) * $item_per_page); ?> <section class="table_container"> <div class="controls_container"> <div class="control"> <select id="months" name="months"> <option value="" selected>Seleziona Mese</option> <option value="01">Gennaio</option> <option value="02">Febbraio</option> <option value="03">Marzo</option> <option value="04">Aprile</option> <option value="05">Maggio</option> <option value="06">Giugno</option> <option value="07">Luglio</option> <option value="08">Agosto</option> <option value="09">Settembre</option> <option value="10">Ottobre</option> <option value="11">Novembre</option> <option value="12">Dicembre</option> </select> </div> <div class="control"> <input type="text" name="location_search" id="location_search" placeholder="Luogo..."/> </div> <div class="control"> <div class="loading" style="display:none;"></div> </div> <div class="control right"> <?php echo paginate_function($item_per_page, $page_number, $get_total_rows, $total_pages); ?> </div> </div> <header class="table_header"> <div class="sec_th first"> <span class="sec_th_t">Voto</span> </div> <div class="sec_th second"> <span class="sec_th_t">Data</span> </div> <div class="sec_th third"> <span class="sec_th_t">Manifestazione</span> </div> <div class="sec_th fourth"> <span class="sec_th_t">Località</span> </div> <div class="sec_th fifth"> <span class="sec_th_t">Percorso Lungo</span> </div> <div class="sec_th sixth"> <span class="sec_th_t">Info</span> </div> </header> <div id="rows_container"> <?php $query = "SELECT wp_posts.* FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id) WHERE wp_term_taxonomy.taxonomy = 'tipo_manifestazione' AND wp_term_taxonomy.term_id = $c_cid AND wp_posts.post_status = 'publish' AND (wp_posts.vip = 'NULL' OR wp_posts.vip IS NULL) AND wp_posts.post_type = 'manifestazione' GROUP BY wp_posts.ID ORDER BY wp_posts.ID DESC LIMIT $page_position, $item_per_page"; $posts = $wpdb->get_results($query); foreach($posts as $post){ $permalink = get_permalink($post->ID); $locations = $wpdb->get_results("SELECT * FROM wp_locations WHERE post_id = $post->ID"); $l = $locations[0]; ?> <article id="row_<?php echo $post->ID;?>" class="table_row"> <div class="ar_td first"> <span class="ar_td_t"><?php echo do_shortcode('[ratings id="'.$post->ID.'"]');?></span> </div> <div class="ar_td second"> <span class="ar_td_t"><?php echo date("dmY", strtotime(get_field('m_f_data',$post->ID)));?></span> </div> <div class="ar_td third"> <a href="<?php echo $permalink;?>"><span class="ar_td_t"><?php echo $post->post_title;?></span></a> </div> <div class="ar_td fourth"> <a href="<?php echo site_url();?>/geo/?location=<?php echo $l->luogo;?>"> <span class="ar_td_t"><?php echo $l->luogo;?></span></a> </div> <div class="ar_td fifth"> <span class="ar_td_t"><?php echo get_field('m_f_percorso_lungo',$post->ID);?></span> </div> <div class="ar_td sixth"> <a href="javascript:void(0);" onclick="show_info('div_<?php echo $post->ID;?>','row_<?php echo $post->ID;?>');" class="show_button">Info +</a> </div> </article> <div id="div_<?php echo $post->ID;?>" class="div_content"> <?php get_post_fields($post->ID);?> </div> <?php } ?> </div> </section> <?php exit(); } function paginate_function($item_per_page, $current_page, $total_records, $total_pages) { $pagination = ''; if($total_pages > 0 && $total_pages != 1 && $current_page <= $total_pages){ //verify total pages and current page number $pagination .= '<ul class="pagination">'; $right_links = $current_page + 3; $previous = $current_page - 3; //previous link $next = $current_page + 1; //next link $first_link = true; //boolean var to decide our first link if($current_page > 1){ $previous_link = ($previous==0)?1:$previous; $pagination .= '<li class="first"><a href="#" data-page="1" title="First">&laquo;</a></li>'; //first link $pagination .= '<li><a href="#" data-page="'.$previous_link.'" title="Previous">&lt;</a></li>'; //previous link for($i = ($current_page-2); $i < $current_page; $i++){ //Create left-hand side links if($i > 0){ $pagination .= '<li><a href="#" data-page="'.$i.'" title="Page'.$i.'">'.$i.'</a></li>'; } } $first_link = false; //set first link to false } if($first_link){ //if current active page is first link $pagination .= '<li class="first active">'.$current_page.'</li>'; }elseif($current_page == $total_pages){ //if it the last active link $pagination .= '<li class="last active">'.$current_page.'</li>'; }else{ //regular current link $pagination .= '<li class="active">'.$current_page.'</li>'; } for($i = $current_page+1; $i < $right_links ; $i++){ //create right-hand side links if($i<=$total_pages){ $pagination .= '<li><a href="#" data-page="'.$i.'" title="Page '.$i.'">'.$i.'</a></li>'; } } if($current_page < $total_pages){ $next_link = ($i > $total_pages)? $total_pages : $i; $pagination .= '<li><a href="#" data-page="'.$next_link.'" title="Next">&gt;</a></li>'; //next link $pagination .= '<li class="last"><a href="#" data-page="'.$total_pages.'" title="Last">&raquo;</a></li>'; //last link } $pagination .= '</ul>'; } return $pagination; //return pagination links } FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id) WHERE wp_term_taxonomy.taxonomy = 'tipo_manifestazione' AND wp_term_taxonomy.term_id = $ function get_table(){ global $wpdb; $c_cid = $_REQUEST['cat']; if(isset($_REQUEST["page"])){ $page_number = filter_var($_REQUEST["page"], FILTER_SANITIZE_NUMBER_INT, FILTER_FLAG_STRIP_HIGH); //filter number if(!is_numeric($page_number)){die('Invalid page number!');} //incase of invalid page number }else{ $page_number = 1; //if there no page number, set it to 1 } $item_per_page = 20; //get total number of records from database for pagination $get_total_row = $wpdb->get_results("SELECT wp_posts.* FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id) WHERE wp_term_taxonomy.taxonomy = 'tipo_manifestazione' AND wp_term_taxonomy.term_id = $c_cid AND wp_posts.post_status = 'publish' AND (wp_posts.vip = 'NULL' OR wp_posts.vip IS NULL) AND wp_posts.post_type = 'manifestazione' GROUP BY wp_posts.ID ORDER BY wp_posts.ID DESC"); $get_total_rows = count($get_total_row); //break records into pages $total_pages = ceil($get_total_rows/$item_per_page); //get starting position to fetch the records $page_position = (($page_number-1) * $item_per_page); ?> <section class="table_container"> <div class="controls_container"> <div class="control"> <select id="months" name="months"> <option value="" selected>Seleziona Mese</option> <option value="01">Gennaio</option> <option value="02">Febbraio</option> <option value="03">Marzo</option> <option value="04">Aprile</option> <option value="05">Maggio</option> <option value="06">Giugno</option> <option value="07">Luglio</option> <option value="08">Agosto</option> <option value="09">Settembre</option> <option value="10">Ottobre</option> <option value="11">Novembre</option> <option value="12">Dicembre</option> </select> </div> <div class="control"> <input type="text" name="location_search" id="location_search" placeholder="Luogo..."/> </div> <div class="control"> <div class="loading" style="display:none;"></div> </div> <div class="control right"> <?php echo paginate_function($item_per_page, $page_number, $get_total_rows, $total_pages); ?> </div> </div> <header class="table_header"> <div class="sec_th first"> <span class="sec_th_t">Voto</span> </div> <div class="sec_th second"> <span class="sec_th_t">Data</span> </div> <div class="sec_th third"> <span class="sec_th_t">Manifestazione</span> </div> <div class="sec_th fourth"> <span class="sec_th_t">Località</span> </div> <div class="sec_th fifth"> <span class="sec_th_t">Percorso Lungo</span> </div> <div class="sec_th sixth"> <span class="sec_th_t">Info</span> </div> </header> <div id="rows_container"> <?php $query = "SELECT wp_posts.* FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id) WHERE wp_term_taxonomy.taxonomy = 'tipo_manifestazione' AND wp_term_taxonomy.term_id = $c_cid AND wp_posts.post_status = 'publish' AND (wp_posts.vip = 'NULL' OR wp_posts.vip IS NULL) AND wp_posts.post_type = 'manifestazione' GROUP BY wp_posts.ID ORDER BY wp_posts.ID DESC LIMIT $page_position, $item_per_page"; $posts = $wpdb->get_results($query); foreach($posts as $post){ $permalink = get_permalink($post->ID); $locations = $wpdb->get_results("SELECT * FROM wp_locations WHERE post_id = $post->ID"); $l = $locations[0]; ?> <article id="row_<?php echo $post->ID;?>" class="table_row"> <div class="ar_td first"> <span class="ar_td_t"><?php echo do_shortcode('[ratings id="'.$post->ID.'"]');?></span> </div> <div class="ar_td second"> <span class="ar_td_t"><?php echo date("dmY", strtotime(get_field('m_f_data',$post->ID)));?></span> </div> <div class="ar_td third"> <a href="<?php echo $permalink;?>"><span class="ar_td_t"><?php echo $post->post_title;?></span></a> </div> <div class="ar_td fourth"> <a href="<?php echo site_url();?>/geo/?location=<?php echo $l->luogo;?>"> <span class="ar_td_t"><?php echo $l->luogo;?></span></a> </div> <div class="ar_td fifth"> <span class="ar_td_t"><?php echo get_field('m_f_percorso_lungo',$post->ID);?></span> </div> <div class="ar_td sixth"> <a href="javascript:void(0);" onclick="show_info('div_<?php echo $post->ID;?>','row_<?php echo $post->ID;?>');" class="show_button">Info +</a> </div> </article> <div id="div_<?php echo $post->ID;?>" class="div_content"> <?php get_post_fields($post->ID);?> </div> <?php } ?> </div> </section> <?php exit(); } function paginate_function($item_per_page, $current_page, $total_records, $total_pages) { $pagination = ''; if($total_pages > 0 && $total_pages != 1 && $current_page <= $total_pages){ //verify total pages and current page number $pagination .= '<ul class="pagination">'; $right_links = $current_page + 3; $previous = $current_page - 3; //previous link $next = $current_page + 1; //next link $first_link = true; //boolean var to decide our first link if($current_page > 1){ $previous_link = ($previous==0)?1:$previous; $pagination .= '<li class="first"><a href="#" data-page="1" title="First">&laquo;</a></li>'; //first link $pagination .= '<li><a href="#" data-page="'.$previous_link.'" title="Previous">&lt;</a></li>'; //previous link for($i = ($current_page-2); $i < $current_page; $i++){ //Create left-hand side links if($i > 0){ $pagination .= '<li><a href="#" data-page="'.$i.'" title="Page'.$i.'">'.$i.'</a></li>'; } } $first_link = false; //set first link to false } if($first_link){ //if current active page is first link $pagination .= '<li class="first active">'.$current_page.'</li>'; }elseif($current_page == $total_pages){ //if it the last active link $pagination .= '<li class="last active">'.$current_page.'</li>'; }else{ //regular current link $pagination .= '<li class="active">'.$current_page.'</li>'; } for($i = $current_page+1; $i < $right_links ; $i++){ //create right-hand side links if($i<=$total_pages){ $pagination .= '<li><a href="#" data-page="'.$i.'" title="Page '.$i.'">'.$i.'</a></li>'; } } if($current_page < $total_pages){ $next_link = ($i > $total_pages)? $total_pages : $i; $pagination .= '<li><a href="#" data-page="'.$next_link.'" title="Next">&gt;</a></li>'; //next link $pagination .= '<li class="last"><a href="#" data-page="'.$total_pages.'" title="Last">&raquo;</a></li>'; //last link } $pagination .= '</ul>'; } return $pagination; //return pagination links } 

Ajax:

 jQuery("#get_table").load(ajaxurl,{'action':'get_table','cat':cat,'page':page}); 

The code works well to receive messages, and pagination works well, the only thing I can’t understand, since I can make this thing use directly on the page where the messages are with the current matching date.

+5
source share
2 answers

You must check the index of the item you want to display. You can do this using the same query you use to count the result lines, but excluding anything later than the selected date. You can then find out which page you want to include by dividing the strings found by the page size.

The simple version will be (simplified code):

 $page_size = 10; $total_rows = count($db->query("SELECT * FROM events;")); $past_present_rows = count($db->query("SELECT * FROM events WHERE date <= '2015-05-24';")); $desired_page = ceil($past_present_rows / $page_size); // Use floor() if the first page is 0, ceil() is first page is 1. 

So, if we apply it to the provided code:

 function get_table(){ global $wpdb; $c_cid = $_REQUEST['cat']; $item_per_page = 20; if(isset($_REQUEST["page"])){ $page_number = filter_var($_REQUEST["page"], FILTER_SANITIZE_NUMBER_INT, FILTER_FLAG_STRIP_HIGH); //filter number if(!is_numeric($page_number)){die('Invalid page number!');} //incase of invalid page number }else{ $get_past_row = $wpdb->get_results("SELECT wp_posts.* FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id) WHERE wp_term_taxonomy.taxonomy = 'tipo_manifestazione' AND wp_term_taxonomy.term_id = $c_cid AND wp_posts.post_status = 'publish' AND (wp_posts.vip = 'NULL' OR wp_posts.vip IS NULL) AND wp_posts.post_type = 'manifestazione' AND wp_post.man_date <= '2015-05-24' GROUP BY wp_posts.ID ORDER BY wp_posts.ID DESC"); $get_past_rows = count($get_past_row); $page_number = ceil($get_past_rows / $item_per_page); } //get total number of records from database for pagination $get_total_row = $wpdb->get_results("SELECT wp_posts.* FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id) WHERE wp_term_taxonomy.taxonomy = 'tipo_manifestazione' AND wp_term_taxonomy.term_id = $c_cid AND wp_posts.post_status = 'publish' AND (wp_posts.vip = 'NULL' OR wp_posts.vip IS NULL) AND wp_posts.post_type = 'manifestazione' GROUP BY wp_posts.ID ORDER BY wp_posts.ID DESC"); ... "SELECT wp_posts. * FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id) WHERE wp_term_taxonomy.taxonomy = 'tipo_manifestazione' function get_table(){ global $wpdb; $c_cid = $_REQUEST['cat']; $item_per_page = 20; if(isset($_REQUEST["page"])){ $page_number = filter_var($_REQUEST["page"], FILTER_SANITIZE_NUMBER_INT, FILTER_FLAG_STRIP_HIGH); //filter number if(!is_numeric($page_number)){die('Invalid page number!');} //incase of invalid page number }else{ $get_past_row = $wpdb->get_results("SELECT wp_posts.* FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id) WHERE wp_term_taxonomy.taxonomy = 'tipo_manifestazione' AND wp_term_taxonomy.term_id = $c_cid AND wp_posts.post_status = 'publish' AND (wp_posts.vip = 'NULL' OR wp_posts.vip IS NULL) AND wp_posts.post_type = 'manifestazione' AND wp_post.man_date <= '2015-05-24' GROUP BY wp_posts.ID ORDER BY wp_posts.ID DESC"); $get_past_rows = count($get_past_row); $page_number = ceil($get_past_rows / $item_per_page); } //get total number of records from database for pagination $get_total_row = $wpdb->get_results("SELECT wp_posts.* FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id) WHERE wp_term_taxonomy.taxonomy = 'tipo_manifestazione' AND wp_term_taxonomy.term_id = $c_cid AND wp_posts.post_status = 'publish' AND (wp_posts.vip = 'NULL' OR wp_posts.vip IS NULL) AND wp_posts.post_type = 'manifestazione' GROUP BY wp_posts.ID ORDER BY wp_posts.ID DESC"); ... "SELECT wp_posts. * FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id) WHERE wp_term_taxonomy.taxonomy = 'tipo_manifestazione' function get_table(){ global $wpdb; $c_cid = $_REQUEST['cat']; $item_per_page = 20; if(isset($_REQUEST["page"])){ $page_number = filter_var($_REQUEST["page"], FILTER_SANITIZE_NUMBER_INT, FILTER_FLAG_STRIP_HIGH); //filter number if(!is_numeric($page_number)){die('Invalid page number!');} //incase of invalid page number }else{ $get_past_row = $wpdb->get_results("SELECT wp_posts.* FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id) WHERE wp_term_taxonomy.taxonomy = 'tipo_manifestazione' AND wp_term_taxonomy.term_id = $c_cid AND wp_posts.post_status = 'publish' AND (wp_posts.vip = 'NULL' OR wp_posts.vip IS NULL) AND wp_posts.post_type = 'manifestazione' AND wp_post.man_date <= '2015-05-24' GROUP BY wp_posts.ID ORDER BY wp_posts.ID DESC"); $get_past_rows = count($get_past_row); $page_number = ceil($get_past_rows / $item_per_page); } //get total number of records from database for pagination $get_total_row = $wpdb->get_results("SELECT wp_posts.* FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id) WHERE wp_term_taxonomy.taxonomy = 'tipo_manifestazione' AND wp_term_taxonomy.term_id = $c_cid AND wp_posts.post_status = 'publish' AND (wp_posts.vip = 'NULL' OR wp_posts.vip IS NULL) AND wp_posts.post_type = 'manifestazione' GROUP BY wp_posts.ID ORDER BY wp_posts.ID DESC"); ... 
0
source

I figured it out myself.

Using the following query, I get messages with the current date and the dates that are being transmitted.

 $date = date("Ymd"); $posts_c = $wpdb->get_results("SELECT * FROM wp_posts WHERE wp_posts.man_date <= $date"); 

with the code above, I will get the strings and now you can convert them to a number

 $get_count = count($posts_c); 

Now what I did divided the number of posts by the number of posts per page, which is 20

  $page_on = ceil($get_count / 20); 

This $ page_on object contains the value of the page where we will send our user.

+5
source

All Articles