Opens in a new tab
10th Apr '25
/
0 comments

Check if a given category has at least one post

There could be situations where you want to check if a given category (by its slug) has at least 1 post assigned to that category.

This tutorial shows how we can define a custom function for this and use it with Bricks‘ dynamic data condition.

After implementing this tutorial you should be able to do something like

where current-exhibition is the slug of the category. With that in place, the Section will not be output if there is no post assigned to the Current Exhibition category.

Step 1

Add the following in child theme‘s functions.php (w/o the opening PHP tag) or a code snippets plugin:

<?php

/**
 * Check if a category has at least one published post.
 *
 * @param string $category_slug The slug of the category to check.
 * @return bool True if the category has at least one published post, false otherwise.
 */
function bl_category_has_posts( string $category_slug ): bool {
  // Get the category object by slug
  $category = get_term_by( 'slug', $category_slug, 'category' );
  
  // If category doesn't exist, return false
  if ( ! $category || is_wp_error( $category ) ) return false;
  
  // The count property contains the number of published posts in this category
  return $category->count > 0;
}

Step 2

Whitelist the bl_category_has_posts function.

Ex.:

<?php 

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

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

More info on whitelisting can be found here.

Step 3

Add a dynamic data condition on any element in the Bricks builder which should be output if a specific category contains a post.

{echo:bl_category_has_posts(current-exhibition)}

Replace current-exhibition with the slug of category you want to check for.

Get access to all 633 Bricks code tutorials with BricksLabs Pro

Leave the first comment

 

Related Tutorials..

Pro
Checking if the current Page/Post has Children i.e. is a Parent in Bricks

Checking if the current Page/Post has Children i.e. is a Parent in Bricks

Shows how we can check whether the current Page or Post (of any hierarchical post type) is a parent
Categories:
Checking for Post Type in Bricks

Checking for Post Type in Bricks

A way to output elements conditionally based on the current post type in the loop in Bricks.
Categories:
Create A Customizable AJAX Add To Cart Button In Bricks Builder

Create A Customizable AJAX Add To Cart Button In Bricks Builder

In Bricks, you can simply create an Add To Cart button from a dynamic data / function {woo_add_to_cart}. This button supports AJAX as well if…
Pro
User Role Condition in Bricks

User Role Condition in Bricks

This Pro tutorial provides the steps to conditionally output elements depending on the currently logged-in user's role. Step 1 Create a section Template having the…
Categories:
Pro
Conditionally outputting an element in a Query Loop based on date-type custom field

Conditionally outputting an element in a Query Loop based on date-type custom field

This Pro tutorial shows how to output an element in a Bricks' query loop only if the value of a date-type of custom field for…
Categories:
Pro
Conditional single post Bricks template based on internal referrer URL

Conditional single post Bricks template based on internal referrer URL

How to automatically select a single post template depending on the page from which the post is accessed.
Pro
Conditionally Outputting Query Loop Item Based on Post Meta in Bricks

Conditionally Outputting Query Loop Item Based on Post Meta in Bricks

Rendering query-loop enabled posts depending on the value of each post's custom field value is tricky because by default, the custom field plugins' functions or…
Categories: