17th Nov '22
/
7 comments

[Function] Current Term Has Children

Updated on 20 Jul 2024

A user asks:

I’m working on an archive template for WooCommerce products.

I’m trying to hide a section if there are no child categories but I cannot figure out how to set the conditions to do this.

Anyone else know what term or dynamic data to use to get this to work?

We can define a custom function that uses get_term_children() to return true or false, then use it with Bricks’ Dynamic data condition to render a Section (or any element) only if the current term has children.

Add this in child theme’s functions.php or a code snippets plugin:

// Function to check if the current term of the given taxonomy has children
function bl_current_term_has_children( $taxonomy = 'category' ) {
	$term_children = get_term_children( get_queried_object_id(), $taxonomy );

	return count( $term_children ) > 0;
}

get_queried_object_id() gets the ID of the current term when viewing a term archive page. Example URL:

https://bricks.local/product-category/clothing/accessories/

We have set category as the default argument for the function.

To check for a different taxonomy, product_cat in this case:

{echo:bl_current_term_has_children(product_cat)}

Whitelist the bl_current_term_has_children function.

Ex.:

<?php 

add_filter( 'bricks/code/echo_function_names', function() {
  return [
    'bl_current_term_has_children'
  ];
} );

You should also add other functions (native or custom) being used in your Bricks instance besides bl_current_term_has_children. This can be checked at Bricks → Settings → Custom code by clicking the Code review button.

More info on whitelisting can be found here.

Now the function is ready to be used in a term archive template like a template that applies to all WooCommerce product categories.

Apply a Dynamic data condition with the above dynamic data tag whilst checking it against being equal to 1.

Remember that 1 is true and 0 is false.

Reference

https://developer.wordpress.org/reference/functions/get_term_children/

Get access to all 625 Bricks code tutorials with BricksLabs Pro

7 comments

  • Matt CNC

    Thanks for sharing!

    Does it still work for you in 2024?

    I just tried it and the section I added the condition to is hidden on both categories with and without children :(

  • Thanks for sharing! I was looking for this particular solution.

    Does it still work for you in 2024?

    My product category has children but the moment I add the condition to bricks it hides my section with sub-categories anyway :(

  • David Demastus

    How would one do this inside of a query loop, instead of on an archive page? Like if I had a query loop on a standard page of my website. How do I check if the parent terms inside the query has children using bricks conditions?

  • Paco Castilla

    Sublime! Lo tenia hecho con código espagueti y esta función es super simple!! Me encanta!! Muchas gracias!

Leave your comment

 

Related Tutorials..

Conditionally Outputting Based on Query Count in Bricks

Conditionally Outputting Based on Query Count in Bricks

Update on 22 Sep 2023: There's a much simpler built-in method now. See this post. In the Bricks Facebook group a user asks: Is there…
Categories:
Conditions in Bricks Builder

Conditions in Bricks Builder

The current version of Bricks does not have a built-in Conditions feature but that does not mean we can't set them up manually with custom…
Categories:
Conditionally Hide a Section on a Specific Taxonomy’s Term Archives in Bricks

Conditionally Hide a Section on a Specific Taxonomy’s Term Archives in Bricks

A user asked: I have a CTA in the footer of my site, which I have custom fields on various templates, etc to populate. I…
Categories:
JetEngine Checkbox Condition in Bricks

JetEngine Checkbox Condition in Bricks

How elements in Bricks can be conditionally output depending on the selected option from a JetEngine checkbox field.
Categories:
Tags:
Pro
Day of Week Condition in Bricks

Day of Week Condition in Bricks

Displaying elements conditionally based on the current day of the week.
Categories:
Pro
User Role Conditional Output in Bricks

User Role Conditional Output in Bricks

This Pro tutorial provides the steps to output elements based on their CSS class to users of the specified role in WordPress when using Bricks…
Categories: