In my gallery site i want to show other pictures under the current picture (in single post). I seen more codes but it i asks to specify the category, but i dont want want specify the category manually in the code I want the code itself to get the category ID or name.It would be much easier for me if i get full posts instead of post title so that I can display it as in home and category


The question has already been asked and the answer has been posted too,

How to display related posts from same category?

Add this code inside your single.php after a loop wherever you want to show related post,


$related = get_posts( array( 'category__in' => wp_get_post_categories($post->ID), 'numberposts' => 5, 'post__not_in' => array($post->ID) ) );
if( $related ) foreach( $related as $post ) {
setup_postdata($post); ?>
        <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a>
            <?php the_content('Read the rest of this entry &raquo;'); ?>
<?php }
wp_reset_postdata(); ?>

It will display related post from the same category with the post excerpt and title , however if want this code to display just the title of related post then remove this line,

<?php the_content('Read the rest of this entry &raquo;'); ?>
  • sorry I am noob in wordpress and PHP.If yu dont mind, could yu tell me how to put that code in my single.php?? – Felix Feb 5 '12 at 17:01
  • 1
    read my answer again i have added few more details (TESTED) – Sufiyan Ghori Feb 5 '12 at 17:15
  • 1
    sorry, replace 'ODD' with 'the' in the above code – Sufiyan Ghori Feb 5 '12 at 17:34
  • 1
    the error is removed from the code and now it is working perfectly fine (Tested), copy the modified code from my answer – Sufiyan Ghori Feb 5 '12 at 17:39
  • 1
    it means you have removed this line of code, <?php the_excerpt('Read the rest of this entry &raquo;'); ?>, add it back where it was – Sufiyan Ghori Feb 5 '12 at 17:50

Here another clean and very flexible option:

Put this code in your functions.php file

function example_cats_related_post() {

    $post_id = get_the_ID();
    $cat_ids = array();
    $categories = get_the_category( $post_id );

    if(!empty($categories) && is_wp_error($categories)):
        foreach ($categories as $category):
            array_push($cat_ids, $category->term_id);

    $current_post_type = get_post_type($post_id);
    $query_args = array( 

        'category__in'   => $cat_ids,
        'post_type'      => $current_post_type,
        'post_not_in'    => array($post_id),
        'posts_per_page'  => '3'


    $related_cats_post = new WP_Query( $query_args );

         while($related_cats_post->have_posts()): $related_cats_post->the_post(); ?>
                    <a href="<?php the_permalink(); ?>">
                        <?php the_title(); ?>
                    <?php the_content(); ?>
        <?php endwhile;

        // Restore original Post Data


Now you can simply call the function anywhere in your site using:

<?php example_cats_related_post() ?>

You may want to remove the list elements or style them as per your need.

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