I have added query_posts() to my index.php file to modify the loop on the posts page:

query_posts( 'cat=-4,-7' );
get_template_part( 'loop', 'index' );

This works correctly, but when I click on "Older Posts" (link to /page/2), the latest posts show up instead of the previous ones. How can I get my pagination to show the correct posts?


different approach:

global $wp_query;
$args = array_merge( $wp_query->query, array( 'category__not_in' => array(4,7) ) );
query_posts( $args );
get_template_part( 'loop', 'index' ); 

if this approach should not work, please check if one or more of the plugins is interfering - deactivate all plugins; if the exclusion of categories works then, re-activate one plugin at a time to find the interfering plugin.

  • That does not actually work. The posts with category 4 or 7 are still showing up.
    – GavinR
    Jul 26 '11 at 18:27
  • answer edited; rewritten with different query parameter.
    – Michael
    Jul 27 '11 at 20:10

Use this instead:

global $query_string;
query_posts( $query_string.'&cat=-4,-7' );

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.