How do I select parent or child when using terms query loop?


Trying to narrow down which categories are shown by parent/child categories in a query loop.

How do I define which one in the loop? Do I just write the name of the category or what do I need to do?


Hi Erik,
Welcome to the forum!

You can use the term ID instead of the name.

Best regards,

Hi @timmse ,
I am trying to do something similar. The thing is, that “parent” does not affect the query in my case - it still lists all the available categories, not just the child categories of the current product category.

Sorry that I need to bring this up again - did anyone try this? All I would like to do is loop through the subcategories of the current product category to list all the subcategories. I can not imagine that the loop builder is not capable of doing this.

1 Like

Hey Alexa,
sorry, I bookmarked the thread - but haven’t gotten around to looking into it yet. I’ll get back to you as soon as I can give you a satisfactory answer :slight_smile:

1 Like

Hi Alexa,

Just tested this in 1.5 Beta and it works fine here.

Make sure you are setting this up in a Template that applies to all terms of Product categories.

Hi @Alexa.

Did You managed to get this to work? I´m facing the same issue… Using {term_id} in the ‘Parent’ field has no effect. Using a fixed value works well. :roll_eyes:

Hi Sridhar.

Could You explain this a little further?

I´m at the same point as Alexa is / was. If I set the parent id as a fixed value (122) it looks good - but using ‘{term_id}’ results in displaying the all categories starting from the alphabetic first.

I have a workaround for this and it works.

First step: Create the function to get the id of the current category:

function getCurrentCatID(){
global $wp_query;
if(is_category() || is_single()){
$cat_ID = get_query_var('cat');
return $cat_ID;

Step 2: put dynamic option in parent loop with: {echo:getCurrentCatID}

This way it allows to make the filter without problems showing the subcategories

1 Like

I dont understand step 2 ?
How can i echo that function on that query loop inside builder?

exact same dilema as its the default woo behavior. Did you ever got a solution?

I will try the child of custom function posted in this thread. :raised_hands:t2:

What is kinda working for me is this.

Snímka obrazovky 2023-01-18 o 11.18.07

Order by Parent and then it first shows all the parents and then all subcategories. So what I did is counted how many parent categories I have (7) and then restricted to display only first 7 categories which are parent categories.

How is there not a simple answer to this? It’s driving me crazy. I’ve read half the forum in search of a solution for this. Why does this have to be so complicated? I can’t get my answer anywhere.