What I am trying to do
Hi, in my site I have a custom post type called projects
, then I have created a custom taxonomy for my projects
post type called project_catagories
. Now in my projects archive page (where it shows all the projects), I have a section called browse by category and when a user clicks on a category name it is supposed to show the projects under that category.
Now to show the projects under the clicked category, I've created a template file called taxonomy-project_catagories.php
which shows each project category projects. Now within that file, I am first using the get_term_by()
to get the term_id
of that page like the following way:
$term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
Then I'm passing that term_id
to my WP_Query()
to get the list of projects under that category, like this:
$args = array(
'numberposts' => -1,
'post_type' => 'projects',
'tax_query' => array (
'taxonomy' => 'project_catagories',
'field' => 'term_id',
'terms' => $term->term_id
)
);
$the_project_cat_query = new WP_Query($args);
Then finally I loop through and show the projects.
Problem:
Now the problem is that no matter what term_id
is being passed to the WP_Query()
, it is showing up all the projects under all categories. I know there are many similar questions here on this forum and stack overflow and I have checked them all but none helped me. I even checked WP_Quey
documentation and still couldn't figure out what's happening. So, any help will be really helpful.
How I tested it
I have created one project under one project category, so technically when will be on that project category page, then only it should show me the project details and for other pages, it should show blank as there are no categories under that project category.
II even tried manually entering the term_id
, checking the field
value to slug
and then manually entering a slug. In all cases exactly the same result.
Any response will be really helpful.