Php – Only show specific category in wordpress loop

PHPWordpress

How Can I only show a specific category in my wordpress index page? Below is my theme code…

Also, when looking at the URL for my category (how I usually get the ID) it seems a strange format..

http://oil.wpengine.com/wp-admin/edit-tags.php?action=edit&taxonomy=category&tag_ID=1179&post_type=post

<?php query_posts( array ( 'Event_News' => 'event-news' ) ); ?>
    <?php if (have_posts()) : ?>

    <ul class="posts">
        <li id="post-<?php the_ID(); ?>">

            <?php
            get_the_image( array( 'size' => 'loop-main', 'width' => 160, 'height' => 120, 'before' => '<div class="cover">', 'after' => '</div>' ) );
            ?>

            <div class="postcontent">
                <h2><a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
                <div class="postmetadata">
                    <ul>
                        <?php if (option::get('display_date') == 'on') { ?><li class="calendar"><time datetime="<?php the_time("Y-m-d"); ?>" pubdate><?php the_time("j F Y"); ?></time></li><?php } ?>
                        <?php if (option::get('display_author') == 'on') { ?><li class="author"><?php _e('By', 'wpzoom');?> <?php the_author_posts_link(); ?></li><?php } ?>
                        <?php if (option::get('display_category') == 'on') { ?><li class="category"><?php the_category(', '); ?></li><?php } ?>
                        <?php if (option::get('display_comments') == 'on') { ?><li class="comments"><?php comments_popup_link( __('0 comments', 'wpzoom'), __('1 comment', 'wpzoom'), __('% comments', 'wpzoom'), '', ''); ?></li><?php } ?>
                    </ul>
                </div><!-- end .postmetadata -->
                <?php the_excerpt(); ?>
                <p class="more"><a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>" class="readmore" rel="nofollow"><?php _e('continue reading &raquo;', 'wpzoom');?></a> <?php edit_post_link( __('Edit this post', 'wpzoom'), ' | ', ''); ?></p>
            </div><!-- end .postcontent -->

            <div class="cleaner">&nbsp;</div>
            <div class="sep">&nbsp;</div>
        </li><!-- end #post-<?php the_ID(); ?> -->
        <?php endwhile; //  ?>
    </ul>

    <div class="cleaner">&nbsp;</div>
    <?php else : ?>

    <p class="title"><?php _e('There are no posts in this category', 'wpzoom');?></p>

    <?php endif; ?>

    <?php get_template_part( 'pagination'); ?>

</div><!-- end .box -->

Best Answer

You can do query_post just before the loop

query_posts( array ( 'category_name' => 'my-category-slug' ) );

If you want posts from more than one category then you can use

query_posts('cat=8,4,3');

8,4,3 are the id for the 3 categories

and after the loop use

wp_reset_query();

For more details view this link

http://codex.wordpress.org/Function_Reference/query_posts#All_Posts_in_a_Category

Related Topic