WordPress page won’t paginate

Okay I am ripping my hair out over this and I know it is super simple and is staring me in the face but I just can’t see it. In essence what is happening is that my pagination isn’t working. I use the plugin wp_pagenavi (which is not the issue already checked) It gives me a list of links of each page in the pagination. That all works fine, in fact all the code does what it is supposed to do. The problem is when I click on the pagination link such as “2” or “3” it attempts to go to the corresponding pagination ie www.yousitehere.com/somepage/page/2 but instead the site just reloads the current page without the /page/2.

I think somewhere the page either doesn’t realize it needs to paginate and therefore ignores all instances of /page or something is resetting the pagination before the page loads. (its not the reset_query).

Read More

This is a WordPress site. Unfortunately I am unable to show the site link which makes it harder for you bu hopefully someone has a suggestion.

here is my code

<div id="content" class="clearfix">
<div id="main" class="col960 left first clearfix" role="cont_detail">
<?php if (have_posts()) : while (have_posts()) : the_post(); 
    $id = get_the_ID();
    $array = metadata($id);
?>
    <article id="post-<?php the_ID(); ?>" <?php post_class('clearfix'); ?> role="cont_detail" >
        <header>
            <div id="header_bg_top"></div>
            <div id="header_bg">
                <?php if($array['custom_facebook'] !="" && $array['custom_twitter'] !="" && $array['custom_linkedin'] != ""&& $array['custom_website'] != "" && $array['custom_blog'] != "" && $array['custom_email'] != ""){?>
                <div class="social_link_container">
                    <div class="width">
                        <?php if(isset($array['custom_facebook']) && $array['custom_facebook'] !=""){?>
                        <a href="http://www.facebook.com/<?php echo $array['custom_facebook'];?>" target="_new"><img src="<?php echo get_template_directory_uri(); ?>/images/author-facebook.png"></a>
                        <?php  }
                        if(isset($array['custom_twitter']) && $array['custom_twitter'] !=""){?>
                        <a href="http://www.twitter.com/<?php echo $array['custom_twitter'];?>" target="_new"><img src="<?php echo get_template_directory_uri(); ?>/images/author-twitter.png"></a>
                        <?php  }
                        if(isset($array['custom_linkedin']) && $array['custom_linkedin'] !=""){?>
                        <a href="http://www.linkedin.com/<?php echo $array['custom_linkedin'];?>" target="_new"><img src="<?php echo get_template_directory_uri(); ?>/images/author-in.png"></a>
                        <?php  }
                        if(isset($array['custom_website']) && $array['custom_website'] !=""){?>
                        <a href="http://<?php echo $array['custom_website'];?>" target="_new"><img src="<?php echo get_template_directory_uri(); ?>/images/author-web.png"></a>
                        <?php  }
                        if(isset($array['custom_blog']) && $array['custom_blog'] !=""){?>
                        <a href="http://<?php echo $array['custom_blog'];?>" target="_new"><img src="<?php echo get_template_directory_uri(); ?>/images/author-blog.png"></a>
                        <?php  }
                        if(isset($array['custom_email']) && $array['custom_email'] !=""){?>
                        <a href="mailto:<?php echo $array['custom_email'];?>"><img src="<?php echo get_template_directory_uri(); ?>/images/author-email.png"></a><?php  }?>
                    </div>
                </div>
                <?php } ?>
                <h1 class="cont_detail_title" itemprop="headline"><?php the_title(); ?></h1>
                <?php if(isset($array['custom_description']) && $array['custom_description'] !="")
                {
                    ?>
                    <span class="title_description"><?php echo $array['custom_description']; ?></span>
                <?php
                }
                ?>
            </div><!-- header-bg -->
        </header> <!-- end article header -->
        <section>
            <div class="content-left">
                <?php if(isset($array['featured_thumb']) && $array['featured_thumb'] !="")
                    {
                    ?>
                    <div class="cont_detail_image">
                        <?php print_thumbnail($array['featured_thumb'], "medium");?>
                    </div>
                <?php  
                }
                ?>
            </div>
            <div class="content-right">
                <?php the_content(); ?>
            </div>
        </section> <!-- end article section -->

    </article> <!-- end article -->
    <?php endwhile; ?>          
    <?php else : ?>
        <article id="post-not-found">
            <header>
                <h1>Not Found</h1>
            </header>
            <section class="post_content">
                <p>Sorry, but the requested resource was not found on this site.</p>
            </section>
            <footer>    
            </footer>
        </article>
    <?php endif;        
    wp_reset_query();
//Sort queries, most viewed, alphabetical, date         

    echo '<section><div id="content_bg" class="group">';
    $row_num = 1;            
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;                     
    if( $_GET['sort'] == 'date' ) {
        $sortOrder = getSortOrder( $_GET['dsort_order'] );
        $meta_queries[] = array(                
            'key' => 'custom_authorid',
            'value' => $post->ID,
            'compare' => 'LIKE',
            );
            query_posts(array(
            'post__not_in' => array($post->ID),
            'post_type' => 'post',
            'meta_query' => $meta_queries,
            'order'=>$sortOrder,
            'orderby'=> 'date',
            'posts_per_page' => 9,
            'paged' => $paged
            ));
    }
    elseif( $_GET['sort'] == 'alpha' ) {
        $sortOrder = getSortOrder( $_GET['asort_order'] );
        $meta_queries[] = array(                
            'key' => 'custom_authorid',
            'value' => $post->ID,
            'compare' => 'LIKE',
            );
            query_posts(array(
            'post__not_in' => array($post->ID),
            'post_type' => 'post',
            'meta_query' => $meta_queries,
            'order'=>$sortOrder,
            'orderby'=> 'title',
            // adding posts_per_page, set to 9 might be different then global preference
            'posts_per_page' => 9,
            'paged' => $paged
            ));
        }
    elseif( $_GET['sort'] == 'mviewed' ) {

        }
    else{   
        $meta_queries[] = array(                                                
            'key' => 'custom_authorid',
            'value' => $post->ID,
            'compare' => 'LIKE',
            );
            query_posts(array(
            'post__not_in' => array($post->ID),
            'post_type' => 'post',
            'posts_per_page' => 9,
            'meta_query' => $meta_queries,
            'paged' => $paged
            ));
        }

        ?>
    <div class="paginate_nav">
        <?php wp_pagenavi(); // use the page navi function ?>
        <div class="sort_nav">
            <?php contrPaginationLinks( $sortOrder ) ?>
        </div><!--sort_nav-->
    </div><!--paginate_nav-->       
    <?php 
        if( $_GET['sort'] == 'mviewed' ) {

        }
        else{ 
            if (have_posts()) : while (have_posts()) : the_post();                                          
                $item = metadata($post->ID);
                $containsVideos = false;
                foreach ($item['cat'] as $value) {
                    if (strpos($value->cat_name,'Videos') !== false) {
                        $containsVideos = true;
                    }
                }
             ?>
                <div class="story-container" >
                    <div class="story_left">
                        <div class="story_image">
                            <input type="hidden" name="vidID" value="<?php echo $item['media_link']; ?>" />
                            <div class="about_latest_image <?php echo $item['media_link']; ?>">
                                <a href="<?php echo $item['link']; ?>">
                                        <?php
                                        print_thumbnail($item['featured_thumb'],"thumbnail", $item['youtube_link'], $item['vimeo_link'], $item['media_link']);      
                                        ?>
                                    <?php if($containsVideos == true){echo '<span class="videoIndicator"></span>';} ?>
                                </a>        
                            </div>
                        </div>      
                        <?php if($_GET['sort'] == 'date'){ ?>
                            <div class="story_view">
                                <?php echo $item['date']; ?>
                            </div>
                            <?php } ?>
                    </div>
                <div class="story_title">
                    <a href="<?php echo $item['link']; ?>" title="<?php echo $item['title']; ?>"> 
                        <span class="story_title"><?php echo $item['title']; ?></span>
                    </a>
                </div>
                <?php if(isset($item['custom_description']) && $item['custom_description'] !="") {
                ?>
                    <div class="story_description"><?php echo $item['custom_description']; ?></div>
                <?php  
                }
                ?>
            <div class="story_content"></div>                         
        </div>
        <?php endwhile; ?>  
        <?php else : ?>
            <h1><?php _e("No Posts Yet", "hooplahatheme"); ?></h1>
            <p><?php _e("Sorry, What you were looking for is not here.", "hooplahatheme"); ?></p>
        <?php endif; 
        } // end display else default
        echo '</div></section>';
        //
        // reset query after display is done            
        //
        wp_reset_query();
        ?>
        <footer>
        </footer> <!-- end article footer -->
</div> <!-- end #main -->    

Update

It turns out that there is a 302 redirect occurring which is what I am trying to find out the next step.

Related posts

Leave a Reply

2 comments

  1. Christopher’s answer probably works for most people.

    But..

    If you want to stop the redirect from also affecting /pagename/page/1, this will help:

    add_filter('redirect_canonical', 'my_redirect_canonical', 10, 2); 
    function my_redirect_canonical($redirect_url, $requested_url) { 
      $do_redirect = true; 
      if(preg_match('/page/',$requested_url)){
        $do_redirect = false; 
      }
      return $do_redirect; 
    } 
    

    Found here.

  2. So for anyone with a similar question the answer is simple. You can’t paginate single post pages by default in wordpress. It will just redirect back to the root URL of the page. What you need to do to stop this is add this to your themes functions.php

    add_filter('redirect_canonical','pif_disable_redirect_canonical');
    
    function pif_disable_redirect_canonical($redirect_url) {
    
    
    if( is_singular() && in_category('PLACE CAT ID HERE') ) {
        $redirect_url = false;
    }
    return $redirect_url;
    }
    

    for more info on this you can look here http://wordpress.org/support/topic/home-pagination-page2-redirect-to-a-post