grafixGUY Posted September 26, 2018 Share Posted September 26, 2018 Looking for some help with a little problem I have with an existing website. The website is http://broadcasttools.com. The problem is with how the "Manuals" list is displaying (or not displaying, as is the case). If you look here - http://broadcasttools.com/manuals/page/5/ you can see there are 54 manuals to be displayed, but only 50 are viewable. You can not navigate to the 6th page, even though it does exist (http://broadcasttools.com/manuals/page/6/) Here is the .PHP code. I'm sure it's something to do with the interval or rounding of of the integer value, but I can't sort it out. <?php if($dis == ''){?> <div class="row"> <div class="col-md-12 navigation_cont"> <?php $startpost=1; $startpost=10*($paged - 1)+1; $endpost = (10*$paged < $wp_query->found_posts ? 10*$paged : $wp_query->found_posts); ?> <div class="col-md-4"> <h5 class="displayResult">Showing results <?php echo $startpost; ?> - <?php echo $endpost; ?> of <?php echo $wp_query->found_posts; ?></h5> </div> <div class="col-md-7"> <div class="navigation"> <?php $cur_page = get_query_var('paged'); $total_man = $wp_query->found_posts; $inetval = 10; $no_of_page = round($total_man / $inetval); for($i = 1; $i <= $no_of_page; $i++ ){ if($cur_page == $i ){ $cls ='active'; }else{$cls ='';} ?> <div class="nav_page <?php echo $cls; ?>"><a href="<?php echo site_url().'/manuals/page/'.$i; ?>"><?php echo $i; ?></a></div> <?php } ?> </div> </div> </div> </div> <?php } else { ?> <div class="row"> <div class="col-md-12 navigation_cont"> <?php $startpost=1; $startpost=10*($paged - 1)+1; $endpost = (10*$paged < $wp_query->found_posts ? 10*$paged : $wp_query->found_posts); ?> <div class="col-md-4"> <h5 class="displayResult">Showing results <?php echo $startpost; ?> - <?php echo $endpost; ?> of <?php echo $wp_query->found_posts; ?></h5> </div> <div class="col-md-7"> <div class="navigation"> <?php $cur_page = get_query_var('paged'); $total_man = $wp_query->found_posts; $inetval = 10; $no_of_page = round($total_man / $inetval); for($i = 1; $i <= $no_of_page; $i++ ){ if($cur_page == $i ){ $cls ='active'; }else{$cls ='';} ?> <div class="nav_page <?php echo $cls; ?>"><a href="<?php echo site_url().'/manuals/page/'.$i.'/?pro=dis'; ?>"><?php echo $i; ?></a></div> <?php } ?> </div> </div> </div> </div> <?php } ?> Thank you. Guy D. Corp grafixCORP Link to comment Share on other sites More sharing options...
justsomeguy Posted September 26, 2018 Share Posted September 26, 2018 I don't know what $paged is set to, but what is this line for: $endpost = (10*$paged < $wp_query->found_posts ? 10*$paged : $wp_query->found_posts); Why wouldn't the end post always be the number of found posts? Why would it ever be less? Link to comment Share on other sites More sharing options...
grafixGUY Posted September 26, 2018 Author Share Posted September 26, 2018 I think this sets that variable: $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; Link to comment Share on other sites More sharing options...
justsomeguy Posted September 27, 2018 Share Posted September 27, 2018 That's fine, but I don't know what that value is supposed to represent, I don't know the meaning. I don't know why the line of code is there to check if 10 * $paged is less than the number of found posts. It sounds like that is a setting to limit the number of pages that are listed in the pagination, otherwise I don't see a reason to not always show the number of found posts. Link to comment Share on other sites More sharing options...
grafixGUY Posted September 27, 2018 Author Share Posted September 27, 2018 Hmmm... I know that the page is limited to listing 10 results per page, then it adds pages as needed. The problem seems to be with the remainder and possibly only if that remainder is 4 or less, then it gets rounded down to 0 and doesn't generate a navigation page to display the results. The page is still generated, just the navigation to it is missing. Not sure if that addresses your question or not. Link to comment Share on other sites More sharing options...
dsonesuk Posted September 27, 2018 Share Posted September 27, 2018 (edited) It returns total number of posts it has currently gone through to the current page, if it exceeds total posts show total posts value. total posts 105 page 1 (start - end) 1 - 10, page 2 11 - 20, ..so on page 10 91 - 100 page 11 will be 10 x 11 this will exceed 105, so show total posts 101 - 105 Edited September 27, 2018 by dsonesuk Link to comment Share on other sites More sharing options...
dsonesuk Posted September 27, 2018 Share Posted September 27, 2018 (edited) You need to round up using ceil() not round() which rounds down. 54 / 10 =5.4 round(54 / 10) = 5, hence you lose final page 6 to show 51 - 54 ceil(54 / 10) = 6, you now have page 6 to show 51 - 54 Edited September 27, 2018 by dsonesuk Link to comment Share on other sites More sharing options...
grafixGUY Posted September 27, 2018 Author Share Posted September 27, 2018 Ah-ha! That makes sense dsonesuk. I'll give that a try. Link to comment Share on other sites More sharing options...
grafixGUY Posted September 27, 2018 Author Share Posted September 27, 2018 Thanks dsonesuk. That was it! All fixed. Much appreciation. Thanks also justsomeguy. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now