List posts by category exclude current post

First off, note that, since your custom loop is a secondary loop/query, you should use the WP_Query class instead of query_posts(). Read why.

That being said,

/* main post's ID, the below line must be inside the main loop */
$exclude = get_the_ID();

/* alternatively to the above, this would work outside the main loop */
global $wp_query;
$exclude = $wp_query->post->ID;

/* secondary query using WP_Query */
$args = array(
    'category_name' => 'MyCatName', // note: this is the slug, not name!
    'posts_per_page' => -1 // note: showposts is deprecated!
);
$your_query = new WP_Query( $args );

/* loop */
echo '<ul>';
while( $your_query->have_posts() ) : $your_query->the_post();
    if( $exclude != get_the_ID() ) {
        echo '<li><a href="' . get_permalink() . '">' .
            get_the_title() . '</a></li>';
    }
endwhile;
echo '</ul>';

that’ll do.

Leave a Comment