0

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>

bumped to the homepage by Community 17 hours ago

This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.

0

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.