I’m simply trying to display a list of categorised posts (with the custom post type of ‘project’) on the default category.php page. I can’t get it to work!
If I simply use the base theme category.php template I get a ‘No posts available’ message as it is looking for standard WP posts with a specified category (and there are none). However once I try and get the template to use my custom post type instead it simply prints a list of ALL the projects – no matter what category they are assigned to.
My current code is as follows:
<section>
<?php
query_posts(array(
'post_type' => 'project'
));
?>
<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
<article>
<h2>Project: <?php the_title(); ?></h2>
<?php the_content(); ?>
</article>
<?php endwhile; ?>
</section>
The template should ‘know’ what category it is supposed to be displaying by default. If I’m on www.mysite.co.uk/category/client-x then it should be showing only those projects that have the category ‘client x’. I’m sure this can’t be too hard!
Any help would be greatly appreciated.
Thanks
Dan
Your problem is your use of
query_posts()
. Don’t usequery_posts()
, ever.Filter
pre_get_posts
instead. For example:I’m assuming the appropriate category term is
client-x
, based on the category archive index URL in your question. If that’s not the right category, replace as appropriate.