The problem is that you’re stomping the main query by using query_posts()
. Don’t do that.
Instead, filter the main query via pre_get_posts
:
function wpse82113_filter_pre_get_posts( $query ) {
if ( is_category( 7 ) && $query->is_main_query() ) {
$query->set( 'posts_per_page', '6' );
}
}
add_action( 'pre_get_posts', 'wpse82113_filter_pre_get_posts' );