I'm having an issue with my Category template. With a number of categories it's echoing posts that aren't in the category in question. I've checked the posts and categories in my WPAdmin dashboard, they're correct; the problem lies with my code.
Side note: this loop always returns every post in the category, and then some. So it's not missing any, it's just including some that don't belong.
<?php
$categories = get_the_category(); $category_id = $categories[0]->cat_ID;
// the query
$wpb_all_query = new WP_Query(array('post_type'=>'post', 'post_status'=>'publish', 'posts_per_page'=>-1, 'cat' => $category_id )); ?>
<?php if ( $wpb_all_query->have_posts() and !empty($category_id) ) : ?>
<!-- the loop -->
<?php while ( $wpb_all_query->have_posts() ) : $wpb_all_query->the_post(); ?>
<div>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<p><br/><?php echo get_the_date('l, F j, Y'); _e(' by ');?><a href="<?php echo home_url(); ?>/author/<?php echo the_author_meta('nicename'); ?>"><?php echo get_author_name(); ?></a></p>
<p><br/><?php _e('Categories: '); echo the_category( '/' ); ?></p>
<?php if ( has_post_thumbnail() ) {the_post_thumbnail();} ?>
<span><?php echo apply_filters( 'the_content', wp_trim_words( strip_tags( $post->post_content ), 55 ) ); ?><br/><a href="<?php echo the_permalink();?>">Continue Reading ></a></span>
<p><br/><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p>
<p><?php echo get_the_date('l, F j, Y'); _e(' by ');?><a href="<?php echo home_url(); ?>/author/<?php echo the_author_meta('nicename'); ?>"><?php echo get_author_name(); ?></a></p>
</div>
<?php endwhile; ?>
<!-- end of the loop -->
<?php wp_reset_postdata(); ?>
<?php else : ?>
<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif; ?>