previous and next post of same category on singlepost.php

I want to show previous and next posts of same category in wordpress

My code is :

        ?php
       $prev_post = get_previous_post();
       $next_post = get_next_post();
       ?

       nav class="post-nav section"
        div class="row no-margin"
        ?php // Display the thumbnail of the previous post ?
        div class="col-xs-12 col-sm-6 prev-post" style="padding:0px"                                                 
           ?php
         $prevPost = get_previous_post();
            $prevthumbnail = get_the_post_thumbnail($prevPost-ID); 
            $post_tile=get_the_title($prevPost-ID);
            $thumb = wp_get_attachment_image_src(    
              get_post_thumbnail_id($prevPost-ID), 'full' );                                                
            ?

            div class="post-nav-thumb" style="background-image:  
             url('?php echo $thumb['0'];?')" /div                                  
            div class="post-nav-content"
            div class="post-nav-subtitle"?php  
            previous_post_link('%link', 'Prev Post'); ?/div                                          
            h2 class="post-nav-title"span?php     
            previous_post_link('%link', $post_tile); ?/span/h2
            /div

        /div

    ?php // Display the thumbnail of the next post ?
        div class="col-xs-12 col-sm-6 next-post" style="padding:0px" 
          ?php      
            $nextPost = get_next_post();
            $nextthumbnail = get_the_post_thumbnail($nextPost-ID); 
            $post_tile=get_the_title($nextPost-ID);
            $thumb = wp_get_attachment_image_src(  
            get_post_thumbnail_id($nextPost-ID), 'full' );
            ?
            div class="post-nav-thumb" style="background-image: 
            url('?php echo $thumb['0'];?')"/div
            div class="post-nav-content"
            div class="post-nav-subtitle"?php next_post_link('%link', 
            'Next Post'); ?/div
            h2 class="post-nav-title"span?php 
           next_post_link('%link', $post_tile); ?/span/h2
            /div

        /div
    /div/nav

Topic next-post-link previous-post-link posts Wordpress

Category Web


I would not use get_posts() to setup my loop on the single.php page. I would just use the normal proper loop. Please check out this page in the codex about Theme Development

Here is an example of a single.php that will work as expected

<div id="primary" class="content-area">
    <div id="content" class="site-content" role="main">
        <?php
            // Start the Loop.
            while ( have_posts() ) : the_post(); ?>

        <?php
                get_template_part( 'content', get_post_format() );

                // Previous/next post navigation.
                previous_post_link( '%link', 'Prev post in category', true );
                next_post_link( '%link', 'Next post in category', true );

                // If comments are open or we have at least one comment, load up the comment template.
                if ( comments_open() || get_comments_number() ) {
                    comments_template();
                }
            endwhile;
        ?>
    </div><!-- #content -->
</div><!-- #primary -->

As pointed out in the other answer, go and have a read on how to use the next_post_link and the previous_post_link

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.