WordPress displays posts of category ID

Can’t seem to find the right answer for what I thought would be trivial.

I have some categories arranged like this…

Read More

Parent Category 1
– Child Category 1
– Child Category 2
– Child Category 3

…and I have some posts that are in Child Category 2. I want my page to display all posts from the category I am currently in.

This is what I am doing right now:

<?php
query_posts('cat=2&showposts=10');
    if (have_posts()) : while (have_posts()) : the_post(); ?>      
    <div class="timeline">
    <h3><?php the_title(); ?></h3>
    <?php the_content();?>
    <?php endwhile; else: ?>
    <?php _e('No Posts Sorry.'); ?>
    <?php endif; ?>
</div>

As you can see I am having to manually specify the category (cat=2), but instead I want it to automatically detect the category I am already in and display the posts (that way if I’m in a different category it will display those posts).

Any suggestions?

Thanks in advance. (SO Community = Awesome Sauce).

Related posts

Leave a Reply

6 comments

  1. try below code:

    <?php
    $current_cat_id  = get_query_var('cat');
    $showposts = 10;
    $args = array('cat' => $current_cat_id, 'orderby' => 'post_date', 'order' => 'DESC', 'posts_per_page' => $showposts,'post_status' => 'publish');
    query_posts($args);
        if (have_posts()) : while (have_posts()) : the_post(); ?>      
        <div class="timeline">
        <h3><?php the_title(); ?></h3>
        <?php the_content();?>
        <?php endwhile; else: ?>
        <?php _e('No Posts Sorry.'); ?>
        <?php endif; ?>
    </div>
    
  2.     <?php
        // Start the loop.
        $categories = get_categories('child_of=1');//Parents category id
                            foreach ($categories as $cat) {
    
                                $option = '<a href="/category/archives/'.$cat->category_nicename.'">';
                                $option .= $cat->cat_name;//parents sub category name
                                $option .= '</a>';
                                echo $option;
                                query_posts('cat=$cat->cat_ID&showposts=10');
    if (have_posts()) : while (have_posts()) : the_post(); ?>      
    
    <h3><?php the_title(); ?></h3>
    <?php the_content();?>
    <?php endwhile; else: ?>
    <?php _e('No Posts Sorry.'); ?>
    <?php endif;  }?>
    
  3. <ul>
    <?php
    global $post;
    
    $args = array( 'posts_per_page' => 5, 'offset'=> 0, 'category' => 1 );
    // 1 is a cat id.
    // 
    
    $myposts = get_posts( $args );
    
    foreach( $myposts as $post ) : setup_postdata($post); ?>
    <li>
    <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    </li>
    <?php endforeach; ?>
    
    </ul>
    
  4. Try this, this is better solution for this and you can also use it to show Related Post by a category id…

    Just call the function that mentioned below by using this line. Put this in your template or page.php/single.php file.

    Call by put this line: related_post_title('enter cat id here..');

    Here is the Function and put this in function.php file.

    Related posts function:

    function related_post_title($cat_id){
    
        $cat = $cat_id;
    
        // Check if it is page only
        if ( is_page() || is_single()) {
            $args=array(
                'cat'  =>  $cat,
                'order'  =>  DESC,
                'orderby'  =>  rand,
                'post__not_in'  =>  array($post->ID),
                'posts_per_page'  =>  9999,
                'caller_get_posts'  =>  1
                );
    
            $my_query = null;
    
            $my_query = new WP_Query($args);
    
            if( $my_query->have_posts() ) {
    
                echo  ' <ul> ';
    
                while ($my_query->have_posts()) : $my_query->the_post(); ?>
    
                    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
    
                <?php
    
                endwhile;
    
                echo '</ul>';
            }
            wp_reset_query();
        }
    }
    

    If any query please let me know, i will help you…