Dammit. It’s not the sidebar either. Turns out there was a query_posts(‘showposts=10’); in the default sidebar, so the main content was showing the first ten posts regardless of category.
I tried the wp_reset_query right before the main content Loop, but still just the one post.
This is my archive.php:
<?php include(TEMPLATEPATH . '/templates/head.php'); ?>
<?php if (have_posts()) : ?>
<?php $post = $posts[0]; // Hack. Set $post so that the_date() works. ?>
<h2 class="archive">
<?php /* If this is a category archive */ if (is_category()) { ?>
Posts Categorized "<?php single_cat_title(); ?>"
<?php /* If this is a tag archive */ } elseif( is_tag() ) { ?>
Posts Tagged "<?php single_tag_title(); ?>"
<?php /* If this is a daily archive */ } elseif (is_day()) { ?>
Archive for <?php the_time('F jS, Y'); ?>
<?php /* If this is a monthly archive */ } elseif (is_month()) { ?>
Archive for <?php the_time('F, Y'); ?>
<?php /* If this is a yearly archive */ } elseif (is_year()) { ?>
Archive for <?php the_time('Y'); ?>
<?php /* If this is an author archive */ } elseif (is_author()) { ?>
Author Archive
<?php /* If this is a paged archive */ } elseif (isset($_GET['paged']) && !empty($_GET['paged'])) { ?>
Blog Archives
<?php } ?>
</h2>
<?php wp_reset_query(); ?>
<?php $postnumber = '1' ?>
<?php while (have_posts()) : the_post(); ?>
<div class="post<?php if($postnumber == '1') echo " post" . $postnumber; $postnumber++; ?>" id="post-<?php the_ID(); ?>">
<?php include(TEMPLATEPATH . '/templates/titleBlock.php'); ?>
<!--<?php remove_filter ('the_content', 'wpautop'); ?>
<?php the_excerpt('<br /><b>Read the rest of this entry...</b>'); ?>
<a href="<?php the_permalink() ?>">Read more...</a>-->
<?php the_tags( '<p><span>Tags:</span> ', ', ', '</p>'); ?>
<?php wp_link_pages(array('before' => '<p><strong>Pages:</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?>
</div>
<?php endwhile; ?>
(Apologies if that didn’t work, this is my first time using the code tags.)